git忽略包含<pattern to =“”ignore =“”>的文件名

时间:2015-09-01 15:26:16

标签: git

我试图告诉git忽略文件名中某处有“_autosave”的文件。这种文件的一个例子是:

帽子/ TFCB_ATV_TOP_HAT / _autosave-TFCB_ATV_HAT.kicad_pcb

在正则表达式中,我只使用模式^.*_autosave.*

当然,git不使用正则表达式来评估其.gitignore文件。我做了一些阅读,并认为*_autosave*会起作用,但事实并非如此。

告诉git忽略这些文件的正确语法是什么?

1 个答案:

答案 0 :(得分:16)

将此行添加到.gitignore

*_autosave*

根据git help gitignore

  

模式相对于.gitignore文件的位置匹配

*_autosave*这样的Patternz匹配名称中某处包含“_autosave”的文件或目录。

  

与完整路径名匹配的两个连续星号(“**”)可能具有特殊含义

     

前导“**”后跟斜杠表示在所有目录中匹配。

但在某些环境中“** /”接缝是多余的。

修改

我的计算机(使用git 1.7.1)不支持dubbel星号,但*_autosave*排除了文件。

这是一个简单的测试scrtipt(适用于Linux)

DIR="$(mktemp -d)"
git init $DIR/project1
cd $DIR/project1
cat > .gitignore <<EOF
**/*_autosave*
*_autosave*
EOF
mkdir dir1
touch README foo_autosave dir1/bar_autosave
git status

rm -rf $DIR/project1