我有一个这样的目录结构:
.git/ .gitignore main/ ... tools/ ... ...
在 main 和 tools 以及任何其他目录中,在任何级别,都可以有一个“bin”目录,我想忽略它(我也想忽略它下面的所有内容)。我已经在 .gitignore 中尝试了这些模式中的每一个,但它们都不起作用:
/**/bin/**/* /./**/bin/**/* ./**/bin/**/* **/bin/**/* */bin/**/* bin/**/* /**/bin/* #and the others with just * at the end too
谁能帮我吗?如果我这样做,第一个模式(我认为应该工作的模式)工作得很好:
/main/**/bin/**/*
但是我不想为每个顶级目录都有一个条目,也不想每次添加新目录时都必须修改 .gitignore 。
这是在 Windows 上使用最新的 msysgit。
编辑: 还有一件事,有些文件和目录的名称中包含子字符串“bin”,我不希望这些被忽略:)
在 1.8.2 版本之前,**在.gitignore. 从 1.8.2 开始,git 支持**表示零个或多个子目录(请参阅发行说明)。
**
.gitignore
忽略目录树中当前级别以下任何位置的所有名为 bin 的目录的方法是使用.gitignore具有以下模式的文件:
bin/
在man页面中,有一个忽略foo使用类似模式调用的目录的示例。
man
foo
编辑:* 如果您的 git 索引中已经有任何您不再希望跟踪的 bin 文件夹,那么您需要明确删除它们。Git 不会仅仅因为它们现在匹配新.gitignore模式而停止跟踪已经被跟踪的路径。仅从索引 ( --cached ) 递归 ( -r )执行文件夹删除 ( rm )。根 bin 文件夹的命令行示例: ***
git rm -r --cached bin