有没有一种很好的方法来解释如何在Git中解决合并冲突?
当我输入时git diff,我想用我选择的视觉差异工具(Windows上的SourceGear"diffmerge")查看输出.如何配置git来执行此操作?
我在Cygwin上尝试过msysGit和Git.两者都可以很好地完成它们并且完美地运行gitk和git-gui.
现在我如何配置合并工具?(Vimdiff在Cygwin上工作,但最好是我想为一些喜欢Windows的同事提供一些用户友好的东西.)
虽然这个问题和答案中的大部分信息都可以在StackOverflow上获得,但它分布在许多页面以及其他错误或误导性的答案中.我花了一段时间拼凑出我想知道的一切.
有很多不同的程序可以用作你的git difftool和mergetool,对于哪个是最好的(意见,要求和操作系统明显不同)肯定没有共识.
Meld是一个流行的跨平台(UNIX/Linux,OSX,Windows)选择,如StackOverflow问题所示,什么是Git最好的可视化合并工具?其中提出梅尔德的答案的答案是其他任何工具的3倍以上.
我的答案将在下面回答以下两个问题:
注意:没有必要使用与difftool和mergetool相同的程序,可以为两者设置不同的程序.
我刚刚在git中将一个分支合并到了我的主人中,我得到了Automatic merge failed; fix conflicts and then commit the result.现在我跑了git mergetool,vimdiff打开了下面的图像.我不知道如何使用vimdiff.这里的每个小组意味着什么,我应该如何解决合并冲突?

在Linux中,我最喜欢的合并工具是Meld,我使用或配置它与Git一起工作时没有任何问题.然而,在Windows中它是一个不同的故事.
首先,我从我在这里找到的软件包中安装了Meld:https://code.google.com/p/meld-installer/
然后,我配置了我的.gitconfig,以支持Meld作为默认的mergetool
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Run Code Online (Sandbox Code Playgroud)
所以,当我遇到冲突时,我会做git difftool而Meld确实打开了.但是,Git写入传递给diff工具的文件的路径不正确.例如,即使Git在存储库目录(我称之为git mergetool的位置)中生成BASE,LOCAL和REMOTE文件,Meld也会尝试打开可执行文件目录中的每个文件.
Meld尝试打开C:\ Program Files(x86)\ Meld\meld\roses.txt.LOCAL.2760.txt,而不是打开C:\ repo\roses.txt.LOCAL.2760.txt.
有没有人遇到过这个或知道如何配置Git/Meld在Windows中正常工作?
我想手动合并所有文件与meld或任何其他diff工具,我怎么能用Git做到这一点?
我跑的git mergetool
时候说no files need merging.所以我想我只有在遇到冲突时才能这样做.
我想用git使用p4merge,但我得到:
启动p4merge时出错:"path/myFile"是(或指向)无效文件(这列出了文件的BASE,LOCAL,REMOTE和标准版本).
Git告诉我有关冲突然后它询问我是否要启动mergetool配置(p4merge)然后我得到上面的错误.
附加说明:它发生在任何文件!
有关这是什么以及如何解决它的任何线索?
嗨,我想使用opendiff作为git mergetool,但是当我运行mergetool时,我收到此错误消息:
合并工具opendiff不能用作'opendiff'
我究竟做错了什么?它之前工作正常,但由于我安装了一个新的硬盘,它不再工作了:(