繁体   English   中英

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

[英]Git - Ignore certain files contained in specific folders

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

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

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

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

我只是在我的文件中有/bin它似乎工作。 它忽略整个文件夹(与其中的特定文件相对)

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

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

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文件。

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

所以,令人失望的是,这并没有得到复制,但总比没有好。

* / bin为我工作

我认为* / bin /也会。

根据您使用的语言,您可以从链接中选择它

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM