我在Windows上遇到.gitignore
的奇怪问题。
我希望git忽略所有.exe
个文件,但Dependencies
文件夹(以及所有子文件夹)中的文件除外。
所以我有:
.gitignore
:
*.exe
!/Dependencies/**/*.exe
遗憾的是,这不起作用。
同时,这样做:
*.exe
!/Dependencies/folder/subfolder/*.exe
所以我想知道,我搞砸了什么,或者这是一种什么样的错误?
我在Windows上运行msysgit(Windows 7 x64)版本1.6.5.1-preview20091022
提前感谢任何输入:)
答案 0 :(得分:18)
自git 1.8.2 (March, 8th 2013)以来,现在支持**
:
.gitignore
和.gitattributes
个文件中的模式可以**/
,作为匹配0个或更多级别的子目录的模式。E.g。 “
foo/**/bar
”与“bar
”本身或“foo
”的子目录中的“foo
”匹配。
在您的情况下,这意味着现在可能支持此行:
!/Dependencies/**/*.exe
答案 1 :(得分:2)
git将模式视为适合fnmatch(3)使用FNM_PATHNAME标志消耗的shell glob
您的平台上的fnmatch可能不支持路径中的**。
答案 2 :(得分:2)
您可以使用
将.gitignore
文件添加到Dependencies
文件夹
*。exe文件
内部。明显的缺点是忽略规范现在分散在几个文件中。