如何以交互方式(可视方式)解决SourceTree / git中的冲突


119

我正在将(Windows)SourceTree用于我的git项目。我可以在命令提示符或Linux终端中执行此操作。

但是,我想知道是否存在一种很好的方法来以交互方式和视觉方式解决冲突。例如,如果pull检测到冲突,则弹出基于GUI的冲突工具(例如P4Merge)。可能吗?

我一直在手动解决冲突,这很痛苦。

例如,这是pull来自SourceTree 的git 消息。

git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master
From W:\repo\
 * branch            master     -> FETCH_HEAD   

Updating 33c07bf..41e0249

error: Your local changes to the following files would be overwritten by merge:
    foo.cpp
    goo.cpp
    goo.hpp
Please, commit your changes or stash them before you can merge.
Aborting    

Completed with errors, see above.

Answers:


135

在SourceTree中,单击“工具”->“选项”。然后,在“常规”选项卡上,确保选中复选框以允许SourceTree修改您的Git配置文件。

然后切换到“差异”标签。在下半部分,使用下拉菜单选择要用于进行差异和合并的外部程序。我已经安装了KDiff3,并且非常喜欢它。完成后,单击“确定”。

现在,当存在合并时,您可以进入“操作”->“解决冲突”->“启动外部合并工具”。


4
我尝试了此操作,但最后,我看不到无可比拟的启动。我看到正在生成比较文件,仅此而已。我无法解决冲突。将其更改为标准/默认比较似乎也无济于事。
Echiban 2013年

1
@echiban您可能拥有Beyond Compare的标准许可证,该许可证不接受3种方式的合并。您需要专业人士才能将其用作git mergetool
pierdevara 2014年

6
在按照所有步骤配置“启动外部合并工具”后,对于我来说仍然是暗淡的,无法激活它
pal4life 2014年

2
同样,我没有选择合并冲突文件,一旦这样做就可以了
pal4life 2014年

2
我必须先在提交列表中单击“未提交的更改”项目,然后再将其取消灰色。
米卡·佐尔图

11

我将SourceTree和TortoiseMerge / Diff一起使用,这是非常简单方便的diff / merge工具。

如果您也想使用它,那么:

  1. 获取TortoiseMerge / Diff的独立版本(已相当旧,因为自TortosieSVN 1.6.7版(即2011年7月以来)开始不独立发行)。此答案中的链接和详细信息。

  2. 解压缩TortoiseIDiff.exeTortoiseMerge.exe到任何文件夹(c:\Program Files (x86)\Atlassian\SourceTree\extras\在我的情况)。

  3. 在SourceTree中打开Tools > Options > Diff > External Diff / MergeTortoiseMerge在两个下拉列表中选择。

  4. 点击OK并将SourceTree指向您TortoiseIDiff.exe和的位置TortoiseMerge.exe

之后,您可以Resolve Conflicts > Launch External Merge Tool从本地存储库中每个冲突文件的上下文菜单中进行选择。这将打开TortoiseMerge,在这里您可以轻松处理所有冲突。完成后,只需关闭TortoiseMerge(您甚至不需要保存更改,这可能会自动完成),几秒钟后,SourceTree应该可以正常处理了。

唯一的问题是,即使未选中适当的选项,它也会自动创建备份副本。


4

如果禁用“解决冲突”->“内容”菜单,则可能在“待处理文件”列表中。我们需要从下拉菜单(顶部)中选择“冲突文件”选项

希望能帮助到你

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.