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

如何以交互方式(可视化)解决SourceTree/git中的冲突,git,git-merge,merge-conflict-resolution,atlassian-sourcetree,Git,Git Merge,Merge Conflict Resolution,Atlassian Sourcetree,我正在为我的git项目使用(Windows)SourceTree。我可以在命令提示符或Linux终端中完成 但是,我想知道是否有一个很好的方式来交互和可视化地解决冲突。例如,如果pull检测到冲突,则会弹出一个基于GUI的冲突工具(例如P4Merge)。可能吗 我总是手工解决冲突,这很痛苦 例如,这是来自SourceTree的gitpull消息 git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit or

我正在为我的git项目使用(Windows)SourceTree。我可以在命令提示符或Linux终端中完成

但是,我想知道是否有一个很好的方式来交互和可视化地解决冲突。例如,如果pull检测到冲突,则会弹出一个基于GUI的冲突工具(例如P4Merge)。可能吗

我总是手工解决冲突,这很痛苦

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

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.

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

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


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

我正在使用SourceTree和TortoiseMerge/Diff,这是一个非常简单方便的Diff/merge工具

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

  • 获取独立版本的OrtoiseEmerge/Diff(相当旧,因为它从2011年7月1.6.7版的TortosiSVN开始就没有独立发布)。链接和详细信息

  • tortoisediff.exe
    tortoisediff.exe
    解压缩到任何文件夹(
    c:\ProgramFiles(x86)\Atlassian\SourceTree\extras\
    ,在我的例子中)

  • 在SourceTree中打开
    Tools>Options>Diff>External Diff/Merge
    。在两个下拉列表中选择
    tortoiser

  • 点击
    OK
    并将SourceTree指向您的
    tortoisediff.exe
    tortoiseemerge.exe
    位置

  • 之后,您可以从本地存储库中每个冲突文件的上下文菜单中选择
    解决冲突>启动外部合并工具
    。这将打开乌龟出现,在那里你可以轻松地处理所有的冲突,你有。一旦完成,只需关闭TurtoisEmerge(您甚至不需要保存更改,这可能会自动完成),几秒钟后SourceTree将优雅地处理该操作


    唯一的问题是,它会自动创建备份副本,即使。

    当“解决冲突->内容”菜单被禁用时,其中一个可能位于“挂起的文件”列表中。我们需要从下拉列表(顶部)中选择冲突文件选项


    希望它能有所帮助

    我尝试过这个,但最后,我看不到比这更令人满意的产品被推出。我看到正在生成比较文件,但仅此而已。我无法解决冲突。将此更改为标准/默认比较似乎也没有帮助。@echiban您可能拥有Beyond compare的标准许可证,该许可证不接受三向合并。您需要使用专业版将其用作git MergeTool在完成所有配置步骤后,“启动外部合并工具”对我来说仍然是灰色的,无法激活它。因此,我没有选择合并冲突文件,一旦我选择了合并冲突文件,它就变好了,我必须单击提交列表中的“未限制的更改”项,然后它才会变灰。