即使在子目录

时间:2016-12-11 23:24:48

标签: git

如何忽略除具有特定扩展名的文件以外的所有文件,甚至考虑位于子目录中的文件?

示例:我的玩具"存储库"

./foo.xyz  
./tmp/foo.xyz  
./tmp/foo.arg  
./.gitnore  

我想保留foo.xyz和tmp / foo.xyz,但不是foo.arg

我尝试了以下内容:

# gitignore file
*                                                                                                           
!*/                                                                                                         
!.gitignore
!*.xyz

然而foo.arg不会被忽略:(

请问有什么样的递归模式可以在子目录中找到吗?

2 个答案:

答案 0 :(得分:2)

为了以防万一,请确保您的文件名为./.gitnore,而不是git check-ignore -v -- afile,因为它在您的问题中(可能是一个简单的拼写错误)。

要确保忽略文件,请删除您知道被忽略的文件,然后键入git rm --cached -r . git add . git commit -m "apply .gitignore" :您将看到.gitignore文件是否实际生效。

如果没有,请尝试:

lkw

答案 1 :(得分:1)

这是一个.gitignore文件:

/Debug/      ignore a folder and all subdirectories.
/Release/
*.sdf        ignore all files in this format. (all in project directory)
sample.txt   ignore a file.

我认为你添加并将你的文件提交给git。现在试图忽略它。 不可能。你应该从git中删除它。