.gitignore异常包括额外文件

.gitignore异常包括额外文件,git,version-control,gitignore,atlassian-sourcetree,Git,Version Control,Gitignore,Atlassian Sourcetree,我将.gitignore文件设置为: MyCompany.MyProject.OAuth/bin/ !MyCompany.MyProject.OAuth/bin/Debug/MyCompany.MyProject.OAuth.dll 出于某种原因,源代码树在提交列表中显示“MyCompany.MyProject.OAuth.dll”和其他一些文件,如 MyCompany.MyProject.OAuth/bin/Debug/AutoMapper.xml MyCompany.MyProject.O

我将.gitignore文件设置为:

MyCompany.MyProject.OAuth/bin/
!MyCompany.MyProject.OAuth/bin/Debug/MyCompany.MyProject.OAuth.dll
出于某种原因,源代码树在提交列表中显示“MyCompany.MyProject.OAuth.dll”和其他一些文件,如

MyCompany.MyProject.OAuth/bin/Debug/AutoMapper.xml
MyCompany.MyProject.OAuth/bin/Debug/Castle.Core.xml
MyCompany.MyProject.OAuth/bin/Debug/Castle.Windsor.xml
MyCompany.MyProject.OAuth/bin/Debug/Newtonsoft.Json.xml
MyCompany.MyProject.OAuth/bin/Debug/MyCompany.MyProject.OAuth.dll
MyCompany.MyProject.OAuth/bin/Debug/MyCompany.MyProject.OAuth.dll.config
如果我删除第二行文件忽略文件,它将删除本例中的所有内容(如预期)。我只想包括“MyCompany.MyProject.OAuth.dll”

它是在做一个通配符匹配还是什么?想法呢?

哦,我讨厌这样做。(在5分钟内回答自己的问题)但我必须在忽略列表中包括子文件夹,如

MyCompany.MyProject.OAuth/bin/Debug

如果已从@VonC中排除文件的父目录q.v.,则无法重新包含该文件

所以你应该做的是:

MyCompany.MyProject.OAuth/bin/**
!MyCompany.MyProject.OAuth/bin/**/
!MyCompany.MyProject.OAuth/bin/Debug/MyCompany.MyProject.OAuth.dll
第一行递归地忽略
bin
目录中的所有文件。
第二行递归地排除
bin
目录中的所有文件夹。

第三行不包括您希望提交的文件。

@dubes感谢您的投票。VonC是一位严肃的Git专家,很容易成为这个网站上知识最渊博的人之一。喜欢这种方法。谢谢@TimBiegeleisen事实上,在Git上最有知识的人应该是torek();)如中所示,请填写六(6!)个脚注。