2012-03-10 133 views
13

有没有可用于合并冲突的git钩子?发生故障git merge后,能够编写一个脚本来打开$EDITOR中存在冲突的所有文件将非常好。不幸的是,post-merge挂钩不会运行,如果有冲突,并从我在githooks手册页中看到的,没有其他适用的挂钩。合并冲突的Git钩子

我想知道我是否遗漏了一些东西,或者如果有其他替代方案没有别名混入'git merge'到函数或类似的东西。

谢谢, 克里斯

+0

你可以使用一个自定义的mergetool,它只是一个编辑器,而不是一个真正的三种方式mergetool,并且当你发生冲突时运行'git mergetool'。 – 2012-03-10 18:39:08

+0

好的建议。我没有考虑到这一点,因为我真的不喜欢任何合并工具,并发现更好地直接在编辑器中修复我的冲突。我发现[这](http://stackoverflow.com/questions/1817370/using-ediff-as-git-mergetool)作为一种可能的解决方案,我认为自定义[mergetool](http://schacon.github.com /git/git-mergetool.html)肯定是要走的路。现在的问题是,如何处理我的问题?我是否应该点击页面底部的“回答您的问题”,或者什么也不做? – flooose 2012-03-11 07:38:56

回答

0

至于建议由查尔斯·贝利,最好的办法是自定义mergetool。使用this guide,我想出了这个简单的方法,有合并在我的编辑器中打开冲突:

[merge] 
    tool = emacs 
[mergetool "emacs"] 
    cmd = $editor \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 

,自从查尔斯·贝利从来没有回答我应该如何给他的信用这一点,我希望这是一种适当的方式终于接近这个问题。

0

我认为有可能两种方式,由floose您可以编辑您的合并工具提到你或者你可以创建一个使用另一个别名:

for i in $(git ls-files -u | cut -f 2 | sort -u); do $EDITOR $i; done