Git - 忽略特定文件夹中包含的某些文件

时间:2009-06-09 17:35:23

标签: git msysgit

我正在使用msysgit,并且项目树中包含许多bin /文件夹。使用项目根目录中的.gitignore文件,我需要忽略项目树中任何位置的bin /文件夹中的所有.dll文件。我已经尝试了“bin / * .dll”,但这不起作用,我认为它只是对项目根目录中的bin /文件夹起作用。

6 个答案:

答案 0 :(得分:14)

刚遇到类似问题并意识到:文件已经添加并签入git。

如何识别差异:Git没有将文件显示为“新”,而是显示为“已修改”。这个细节让我花了很长时间......

如果这是问题,只需“git rm”这些文件并重新开始。突然,.gitignore开始按预期工作。

答案 1 :(得分:13)

我的文件中只有/bin,它似乎有效。它忽略整个文件夹(而不是其中的特定文件)

以下是截至目前的完整内容(仍在不断发展)。

.svn*
obj/
bin/
*.suo
*.user
Log/
log/
*.db

答案 2 :(得分:11)

2016年8月更新(七年后,Git 2.9.3 / Git 2.10)

**/bin/*.dll

这对任何深度都有效。


原始答案(2009,Git 1.6)

你有没有尝试过:

**/bin/*.dll

它适用于我的msysgit1.6.3(在Git工作区的根目录下有一个.gitignore文件。)

实际上,上述内容只会忽略“x/bin/z.dll”,而不是“x/y/bin/z.dll”。

另一种语法可能是:

**/*/bin/*.dll

但那只会得到深度3,而不是深度2!

因此,如果您没有太多需要忽略* .dll的地方,那么最简单的解决方案仍然是那些'bin'目录中的本地.gitignore文件......

或涵盖主要第一深度的指令集合:

bin/*.dll
**/bin/*.dll
**/*/bin/*.dll
**/**/*/bin/*.dll

依此类推,一个.gitignore文件。

答案 3 :(得分:4)

Windows上的.gitignore,似乎无法正常工作。我正在使用msysgit v 1.7.6 beta,它只是按照.gitignor手册页的方式工作。现在,如果我将.gitignore文件的内容复制到$ GIT_DIR / info / exclude文件,在repo中,事情就可以了。

所以,糟糕的是,这不会被复制,但它总比没有好。

答案 4 :(得分:0)

* / bin为我工作

我认为* / bin /也会。

答案 5 :(得分:0)

根据您使用的语言,您可以从link

中进行选择

例如,如果您使用的是Java,则可以使用gitignore

此外,https://www.gitignore.io/允许您在线创建gitingore文件,您只需要输入操作系统,IDE或编程语言并基于它,它将为您提供gitignore文件。使用它,您可以轻松地为项目创建gitignore文件。