我必须合并我正在处理的fortran代码的2个分支。 Fortran不区分大小写,前段时间,没有关于我们的代码行的政策(绝大多数都是大写的,但有些是小写的)。在给定的时间,我们选择将所有内容传递给小写。现在,在每次提交之前,我们会在整个源代码上传递一个脚本,将代码传递给小写。
我的问题是我必须合并两个分支,它们的共同祖先可以追溯到案件未被控制的时间。因此,在合并时,几乎每个不同的文件都会因案例不匹配而产生冲突(这对我来说是错误的"冲突)。
是否有可能(我希望如此......)以及如何进行不敏感的git合并?如果不可能,是否可以在合并过程中在共同祖先上调用我们的小写脚本?
非常感谢!
答案 0 :(得分:0)
提交在合并之前将两个分支上的所有内容传递给小写。
答案 1 :(得分:0)
ElpieKay's answer可能已经足够了,我可能会先尝试一下,特别是因为它可以减少未来的麻烦,并不像干净和污迹过滤器那样繁琐。
如果你仍然遇到问题,请注意Git的递归合并offers a renormalize
strategy-option: 1
renormalize
这将运行所有三个阶段的虚拟结账和登记 解析三向合并时的文件。这个选项是 意味着在合并不同清洁的分支时使用 过滤器或行尾规范化规则。请参阅“合并 具有不同签入/结帐属性的分支“in gitattributes(5)了解详情。
然后,您可以设置“干净”过滤器以转换为小写。 Git将在所有三个阶段使用HEAD
提交中定义的过滤器。如果您已经在当前(--ours
)和其他(--thiers
)提交中进行了较低级别的设置,则这将简化为基本版本。
请注意,此“干净”过滤器将继续应用于文件git add
- ed,直到您带走.gitattributes
。这可能是一个理想的功能。 : - )
1 正如the gitattributes
documentation所述,这也有一个git config
旋钮。