我有两个主要分支,每个分支都有一个子模块,但指向该子模块的两个不同分支。
我想要的是在两个主要分支之间合并/变基时忽略任何子模块更改。
我正在尝试使用.gitattributes
忽略子模块(名为internal
)的任何合并冲突。
当前我在internal merge=ours
中有.gitattributes
,但是它不起作用,它无法合并internal
子模块。
还有其他可以满足我需要的合并策略吗?还是我在.gitattributes
用法上做错了什么?
答案 0 :(得分:1)
子模块作为 gitlink 条目记录在超级项目中。 gitlink存储原始哈希ID,超级项目Git将使用该哈希哈希命令将子模块Git指令到子模块中的git checkout
。 (除了gitlink之外,您还需要.gitmodules
文件内容来提供初始克隆所需的其他信息,但是一旦发生克隆,这些详细信息就会从.gitmodules
文件转移到您的超级项目的配置中。因此.gitmodules
的内容变得无关紧要:只有gitlink很重要。)
合并驱动程序告诉Git如何合并文件。 gitlink条目不是文件,因此合并驱动程序在这里无效。当Git合并三个提交(合并基础和两个分支提示)以及合并基础和两个分支提示都在gitlink中存储了不同的哈希ID时,您将遇到合并冲突,并且您所做的任何操作都不会自动解决它。您必须手动解决它。