所以我有以下回购:n1 - > n2 - > n3 - > master和n2 - > N4
我想使用git将n4合并回master,所以AFIAK:
BASE = n2,LOCAL = n3,REMOTE = n4,MERGED = master
我正在使用p4merge来显示合并,但现在出现了问题......
n2和n4已经注释掉了在master中慢慢取消注释的代码部分...但是视觉合并完全搞砸了...似乎任何注释行都可以匹配任何其他注释行...导致注释函数与其他代码的中间匹配的各种不匹配。 e.g。
LOCAL:
def foo
impl foo
end
def bar
impl bar
end
BASE / REMOTE:
# def foo
# impl foo
# end
#
# def bar
# end
合并:
def foo
impl foo
# def bar
# end
end
毋庸置疑,我不希望代码合并。
我已经阅读了git中的自定义合并驱动程序,但我不确定如何设置它们...我的想法是,如果diff工具可能会以某种方式暂时忽略注释字符,我可能会得到更好的差异分析(虽然差异)然后正确地排队。我试图在p4merge中找到一个设置来做到这一点,但没有运气。在kdiff3中也可能有一种方法,但我想我会先尝试用合并驱动程序来解决这个问题。
任何有关设置或其他方法来解决此问题的建议将不胜感激!谢谢!
答案 0 :(得分:1)
可能有用的一点是合并策略选项patience
。它不会使代码混乱,并报告更少和更少的严重合并冲突。它与'git merge --strategy-option =耐心'一起使用。
git diff
上下文中讨论该选项的另一个问题是What is 'git diff --patience' for?。
当然,该选项在合并手册页中有所描述,git merge manual page。