当Git中存在合并冲突时,类似以下的垃圾被插入到冲突文件中。三个问题:合并冲突解决
- 你如何阅读这些注释?
- 解决这些合并冲突时有什么策略可用?
- 是否有一个Mac的GUI工具,知道如何读取这些文件,并排显示这两个版本,以便更容易地解决问题?
注:如果是相关的,我使用GitHub的Mac的GUI客户端。
当Git中存在合并冲突时,类似以下的垃圾被插入到冲突文件中。三个问题:合并冲突解决
注:如果是相关的,我使用GitHub的Mac的GUI客户端。
现在有一个比试图读取Git插入到文件中的乱码标记更好的解决方案。 Kaleidoscope 2,Black Pixel的差异工具的第二个版本,现在也是合并工具。这不是免费的,但它运作得非常好。
安装万花筒2后,与Git集成非常简单。打开万花筒,然后从菜单栏中选择万花筒>集成...
然后你就会看到这个窗口。只需从左侧导航栏中选择Git,然后安装ksdiff
命令行工具,然后制作Kaleidoscope Git的默认差异和合并工具。
最后,一旦你在Git的合并冲突,只需进入命令行和执行git mergetool
。现在冲突很容易理解。请享用。
我想知道如何标记通过万花筒解决 – 2016-08-05 04:05:40
@FrankFang当你解决所有冲突时,你只需要关闭窗口。你会被问及合并是否可以。 – 2017-02-16 23:15:33
一切<<<<<<
和======
之间来自HEAD
修订,这是启动合并操作之前提交状态(如果树是脏git merge
会抱怨,所以它应该是等同于你的工作目录)。
======
和>>>>>>
之间的部分来自正在合并的版本。 >>>>>>
之后的文本是引入冲突更改的提交的注释。
存在冲突标记意味着该部分文件的基本版本与“新”版本不同。基本版本(最后一个共同的祖先)未显示。
如果你想要一个更舒适的合并和可用的GUI,我建议你看看kdiff3。
谢谢,西蒙。有没有一些GUI应用程序可以打开这些文件,并显示HEAD和合并版本? – 2012-02-09 08:12:54
按照上面@Brian建议的链接。 – 2012-02-09 08:19:25
您能指出我该链接中哪些信息有用吗?我的git手册是无法访问的。 – 2012-02-09 08:39:38
<<<< HEAD #Where the conflict starts
#Previous Revision
========== # The point where things look iffy
#Things that changed
>>>>> New Commit # Point where the conflict ends
苹果的Xcode自带FileMerge它可以在命令行上opendiff
访问。
git mergetool -t opendiff
您可以配置(图形)合并工具,并使用该工具进行解决冲突。
也有看看git mergetool
命令 - 如果你有安装了预定义的工具之一或已经配置了一些其他的工具,这将打开工具http://schacon.github.com/git/git-mergetool.html
分辨率如果您有兴趣的GUI工具,因为GUI工具将帮助您轻松制作分辨率,所以您无需担心符号的真正含义。只要理解标记为=====
和>>>>>
的部分是冲突部分。
你能给我一个可以读取这些文件并解释如何打开它们的Mac GUI应用程序的例子吗?我已经尝试在不同的差异和合并工具中打开这些文件,并且它们只是作为单个文本文件打开,而不是被解释为两个文件。 (这是冲突标记的全部目的。) – 2012-02-09 08:38:00
可能重复[我该如何解决合并Git中的冲突?(http://stackoverflow.com/questions/161813/how-do-i-fix-merge-conflicts-in-git ) - #1链接,如果谷歌“混帐合并冲突” – 2012-02-09 08:05:28