Git合并冲突自定义自动解决方案

6

有没有办法在git中编写自定义合并冲突解析器?我们在多个分支上更改java导入语句时,会产生恶意合并冲突。这些似乎很容易编写插件自动处理90%的情况。Git是否有钩子允许我们仅针对此情况编写自定义自动合并行为?

2个回答

3

您可以按照这里的描述,在.gitconfig中定义新的合并策略。

[merge "mymergescheme"]
        name = my awesome merger
        driver = "my_executable_here"

您可以在同一页面上描述的方式,通过在.gitattributes文件中为特定文件指定合并策略。

src/*.java merge=mymergescheme

这看起来接近我所需要的,但是否有办法保留git的默认合并策略?比如在我运行我的策略之后调用它? - xdhmoore
@xdhmoore,据我所知没有这种方法,尽管你可能可以尝试一些黑客技巧。但需要注意的是,语义会很棘手,因为git希望初始合并的输出已经是一个正确合并的文件。 - merlin2011
在这里找到文档(https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html#_defining_a_custom_merge_driver)。也许我可以返回一个错误码,但我不确定是否会调用另一种自动合并策略。 - xdhmoore
@xdhmoore,干得好。我希望这些可以更详细地解决你的问题,比我的答案更详尽。 - merlin2011

0

还有git rerere命令,旨在解决一次冲突,然后让git以相同的方式解决未来类似的冲突。我自己没有使用过这个命令,也不确定这是否正是您要寻找的,但我认为这值得考虑/测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接