Git忽略扩展但排除目录

时间:2016-07-25 04:18:33

标签: git gitignore

我有一个这样的文件夹:

/<root>
|.git/
|3rd party/
|         |a.txt
|.gitignore
|a.txt

.gitignore内容:

*.txt
*.exe
*.dll
*.lib
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/

!3rd party/

我想忽略某些文件,例如根文件夹中的exe, dll, lib, txt,所有子文件夹除了 3rd party/文件夹。但是git仍然忽略文件3rd party/a.txt 这有什么问题?

P / s:我还希望Debug目录中的Release3rd party文件夹(如果有)不被忽略。也就是说,此.gitignore文件中的每个规则都不适用于3rd party文件夹

2 个答案:

答案 0 :(得分:1)

尝试这样的事情。此外,这是假设您连接第三方文件夹,因此它是3rdparty

*.exe
*.txt
*.lib
!/3rdparty/*.lib
!/3rdparty/*.exe
!/3rdparty/*.txt

答案 1 :(得分:-1)

如果您只想查看3rd party目录的文本文件,请将!3rd party/*.txt添加到.gitignore

之后你需要清除cache

git rm --cached .gitignore