有没有办法创建.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
现在我想创建repoab。
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的更新时我都必须处理这个冲突,这当然不是理想的。
答案 0 :(得分:0)
您可以使用<directoryname>/
忽略目录。
在您的示例中,添加file*/
将忽略这两个文件夹,如果您尝试合并2个repo / branch,则不会出现合并冲突。
答案 1 :(得分:0)
当您找到&#34;多个.gitignore文件&#34;时,您可以将不同的文件放在不同的目录中,但Git不会在一个目录中处理多个.gitignore
文件。通常,Git在pwd
中查找这样的配置文件,然后爬到父目录,直到找到一个或到达根目录。该策略与具有多个配置文件的特殊目录无关。
虽然这不会解决您的合并问题(我认为您need submodules),但可以为编辑器交换文件等内容设置全局.gitignore
其他合作者不必忽视。我在~/.gitignore
有一个,并告诉Git在~/.gitconfig
中阅读它:
[core]
excludesfile = /Users/kristjan/.gitignore
答案 2 :(得分:0)
通过这种结构,我可以合并repoa和repob,没有任何冲突。
但你不能。 .gitignore
个文件可以有排除项,即使没有这些文件,一个repo也可能希望将某些类型的文件包含在另一个文件中,而另一个文件会生成(并忽略它们)。订单很重要。
您可以将.gitignore
放在他们申请的树中,foldera/.gitignore
等等。这对于提供文件来说不会有帮助,但是如果你的规格存在冲突,你那里也会有相互冲突的文件,所以忽略这个问题并不是那里的问题。