【发布时间】:2010-12-01 00:45:25
【问题描述】:
我有一个这样的目录结构:
.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”,我不希望这些被忽略:)
【问题讨论】:
-
可能有人会觉得有帮助:如果您的存储库很少,并且每个存储库都有相同的 .gitignore 文件,则可以将其放入“通用”位置并启动 > git config --global core.excludesfile ~ /.gitignore_global 最后一个参数是公共位置的路径。附言我是 git 新手,不确定这是否是“最佳实践”建议。因此,如果您不想这样做,请告诉我。谢谢。
-
**语法似乎现在(2013 年 3 月,git 1.8.2)正式记录:见 my answer below -
如果有人想阅读最新版本的实际手册页,请参阅gitignore(5) Manual Page。
-
如果您厌倦了阅读论文以获取一行信息atlassian.com/git/tutorials/saving-changes/…,这是一个更友好的选择
-
可能值得注意的是,在创建全局忽略文件时,将其命名为
~/.cvsignore是有益的。其他版本控制系统使用此名称,使其更加“全球化”。