![](/img/trans.png)
[英].gitignore How to ignore first level files in a directory but not sub-files?
[英].gitignore - directory of ignore files
有什么方法可以创建.gitignore文件夹而不是文件? 这样Git会将.gitignore / ignorerulesA和.gitignore / ignorerulesB都解析为忽略文件?
我可以看到这在我有两个要合并的非重叠结构存储库的情况下很有用。
repoa
filea
foldera
.gitignore/ignorea
repob
fileb
folderb
.gitignore/ignoreb
通过这种结构,我可以合并repoa和repob而不会发生任何冲突。
如果这还不可能,请求此功能是否有意义?
我不确定我的问题的搜索结果是否如此差,因为:
更新:澄清
如果我们在上面的示例中采用了两个存储库,并对每个存储库应用不同的.gitignore规则。
例如,在repoa中,我想忽略foldera,而在repob中,我想忽略fileb。 我最终遇到这种情况
repoa
filea
foldera
.gitignore
foldera
repob
fileb
folderb
.gitignore
fileb
现在我要创建仓库。
mkdir repoab
cd repoab
git init
git remote add repoa /path/to/repoa
git remote add repob /path/to/repob
git pull repoa master
git pull repob master
rom ../repob
* branch master -> FETCH_HEAD
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.
基本上,每次我处理repoa或repob的更新时,我都必须处理这种冲突,这当然不是理想的。
您可以使用<directoryname>/
忽略目录。
在您的示例中,添加file*/
将忽略两个文件夹,并且如果您尝试合并2个仓库/分支,则不会发生合并冲突。
当您搜索“多个.gitignore文件”时,可以将不同的文件放在不同的目录中,但是Git不在一个目录中处理多个.gitignore
文件。 通常,Git在您的pwd
寻找这样的配置文件,然后爬到父目录,直到找到一个或到达根目录为止。 该策略与拥有包含多个配置文件的特殊目录没有关系。
尽管这不能解决您的合并问题(我认为您需要子模块 ),但是您可以为其他协作者不需要忽略的诸如编辑器交换文件之类的内容设置全局.gitignore
。 我在~/.gitignore
有一个,告诉Git在~/.gitconfig
阅读它:
[core]
excludesfile = /Users/kristjan/.gitignore
通过这种结构,我可以合并repoa和repob而不会发生任何冲突。
但是你不能。 .gitignore
文件可以具有排除项,即使没有这些排除项,一个回购也可能会期望包含某些类型的文件,而另一个则希望它们会生成(因此忽略它们)。 顺序很重要。
您可以将.gitignore
放入应用于它们的树中, foldera/.gitignore
等等。 这对顶级文件没有帮助,但是如果那里的规范冲突,那么那里的文件也会冲突,因此,忽略混乱并不是真正的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.