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

git ignore filenames which contain <pattern to ignore>

我试图告诉 git 忽略文件名中某处具有 _autosave 的文件。此类文件的示例是:

hats/TFCB_ATV_TOP_HAT/_autosave-TFCB_ATV_HAT.kicad_pcb

在正则表达式中,我会简单地使用模式 ^.*_autosave.*

当然,git 不使用正则表达式来评估其 .gitignore 文件。我读了一些书,觉得 *_autosave* 会起作用,但它不起作用。

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

将此行添加到您的 .gitignore

*_autosave*

根据git help gitignore

patterns match relative to the location of the .gitignore file

类似 *_autosave* 的模式匹配名称中某处包含“_autosave”的文件或目录。

Two consecutive asterisks ("**") in patterns mathed against full pathname may have special meaning

A leading "**" followed by a slash means match in all directories.

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

编辑:

我工作的机器(使用 git 1.7.1)不支持 dubbel asterisk,但是 *_autosave* 它排除了文件。

这是一个简单的测试脚本(针对 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