我的。net解决方案中有很多项目。我想排除所有“bin/Debug”和“bin/Release”文件夹(及其内容),但仍然包括“bin”文件夹本身和其中包含的任何dll。
.gitignore与"bin/"忽略"调试"和"释放"文件夹,但也任何dll包含在"bin"文件夹。
.gitignore文件中的bin/Debug或bin/Release并不排除目录,除非我完全限定忽略模式为Solution/Project/bin/Debug——我不想这样做,因为我需要为解决方案中的每个项目包括这个完整的模式,以及为添加的任何新项目添加它。
有什么建议吗?
我让这个在我的机器上工作的唯一方法是这样做:
# Ignore all directories, and all sub-directories, and it's contents:
*/*
#Now ignore all files in the current directory
#(This fails to ignore files without a ".", for example
#'file.txt' works, but
#'file' doesn't):
/*.*
#Only Include these specific directories and subdirectories:
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/
请注意,您必须显式地允许您想要包含的每个级别的内容。所以如果我在主题下面有子目录5,我仍然需要拼写出来。
这是@Yarin的评论:https://stackoverflow.com/a/5250314/1696153
这些都是有用的话题:
负模式在。gitignore中是如何工作的?
gitignore排除规则实际上是如何工作的?
我也试过
*
*/*
**/**
和* * / wp-content /主题/ * *
或/ wp-content /主题/ * * / *
这些对我也没用。大量的尝试和错误!
似乎这么多年后,这个页面仍然出现在谷歌搜索的顶部…
现代版本的Git支持在单个repo中嵌套.gitignore文件。只需在您想要忽略的子目录中放置一个.gitignore文件。使用一个星号来匹配目录中的所有内容:
echo "*" > /path/to/bin/Debug/.gitignore
echo "*" > /path/to/bin/Release/.gitignore
如果你之前提交过,记得删除之前跟踪的文件:
git rm -rf /path/to/bin/Debug
git rm -rf /path/to/bin/Release
您可以通过执行git status来确认它,以显示从跟踪中删除的所有文件。