忽略 git 项目中的任何“bin”目录
忽略 git 项目中的任何“bin”目录
我有一个这样的目录结构:
.git/ .gitignore main/ ... tools/ ... ...
在主目录、工具目录和其他任何目录的任何层级中都可以有一个“bin”目录,我想忽略它(我也想忽略它下面的所有内容)。我已经在.gitignore中尝试了每个模式,但没有一个有效:
/**/bin/**/* /./**/bin/**/* ./**/bin/**/* **/bin/**/* */bin/**/* bin/**/* /**/bin/* #and the others with just * at the end too
有谁能帮帮我吗?如果我这样做,第一个模式(我认为应该有效)就可以正常工作:
/main/**/bin/**/*
但我不想为每个顶级目录都设置一个条目,我也不想每次添加新目录时都修改.gitignore文件。还有一些文件和目录名中包含子字符串“bin”,我想保留它们。
这是在Windows上使用最新的msysgit。
admin 更改状态以发布 2023年5月20日
在1.8.2版本之前,**
在.gitignore
中没有任何特殊意义。从1.8.2版本开始,git支持**
表示零个或多个子目录(请参阅< a href="https://github.com/git/git/blob/master/Documentation/RelNotes/1.8.2.txt" rel="nofollow noreferrer">发布说明)。
忽略目录树中当前级别以下任何地方名为bin的所有目录的方法是使用.gitignore
文件和以下模式:
bin/
在man
页中,有一个例子来忽略名为foo
的目录,使用类似的模式。
如果您的git索引中已经有任何bin文件夹,而您不再希望跟踪它们,那么您需要明确地将它们删除。 Git不会停止跟踪已经被跟踪的路径,仅因为它们现在匹配新的.gitignore
模式。对于根bin文件夹的命令行示例,请执行文件夹删除(rm)仅从索引中(--cached)递归(-r)。
git rm -r --cached bin