忽略git项目上的任何'bin'目录
我有这样的目录结构:
.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/
在man
页中,有一个使用类似模式忽略名为foo
的目录的示例。
编辑:如果你已经有你的git索引中的任何bin文件夹,你不想跟踪,那么你需要明确地删除它们。 Git不会停止跟踪已经被跟踪的路径,因为它们现在匹配一个新的.gitignore
模式。 从仅索引( - 缓存 )recursivelly( -r )执行文件夹remove( rm )。 root bin文件夹的命令行示例:
git rm -r --cached bin
你梦想中的.gitignore
似乎是:
bin/
在顶层。
我认为值得一提的是git初学者:
如果你已经有一个文件签入了,并且你想忽略它, 如果你稍后添加一个规则 , Git不会忽略这个文件 。 在这些情况下,您必须先在终端中运行以下命令,然后先解压该文件:
git rm --cached
所以如果你想在编辑.gitignore之后添加忽略你本地仓库中的一些目录(它已经存在),你想在你的根目录下运行这个目录
git rm --cached -r .
git add .
它将基本上'刷新'您的本地回购和未停用的文件。
看到:
http://git-scm.com/docs/git-rm,
https://help.github.com/articles/ignoring-files/
链接地址: http://www.djcxy.com/p/45279.html