忽略 git 项目中的任何“bin”目录

17 浏览
0 Comments

忽略 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日
0
0 Comments

您梦想中的 .gitignore 似乎是:

bin/

位于顶层。

0
0 Comments

在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

0