【问题标题】:How to interactively (visually) resolve conflicts in SourceTree / git如何以交互方式(视觉)解决 SourceTree / git 中的冲突
【发布时间】:2013-05-23 21:50:36
【问题描述】:

我正在为我的 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.

【问题讨论】:

    标签: git git-merge merge-conflict-resolution atlassian-sourcetree


    【解决方案1】:

    当解决冲突->内容菜单被禁用时,可能会出现在待处理文件列表中。我们需要从下拉列表中选择冲突文件选项(顶部)

    希望对你有帮助

    【讨论】:

      【解决方案2】:

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

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

      1. 获取 TortoiseMerge/Diff 的独立版本(相当旧,因为自 TortosieSVN 的 1.6.7 版,即 2011 年 7 月以来,它不再提供独立版本)。链接和详情in this answer

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

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

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        现在,当有合并时,您可以进入 Actions->Resolve Conflicts->Launch External Merge Tool。

        【讨论】:

        • 我试过这个,但最后,我没有看到无法比拟的推出。我看到正在生成比较文件,但仅此而已。我无法解决冲突。将此更改为标准/默认比较似乎也无济于事。
        • @echiban 您可能拥有 Beyond Compare 的标准许可证,它不接受 3 路合并。你需要去 pro 才能将它用作 git mergetool
        • 按照所有步骤配置“启动外部合并工具”对我来说仍然是灰色的,无法激活它
        • 另外我没有选择合并冲突文件,一旦我选择了它就很好了
        • 我必须先点击提交列表中的“未提交的更改”项,然后它才会变为灰色。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        • 2018-05-15
        • 1970-01-01
        • 2021-03-09
        • 2017-08-13
        • 1970-01-01
        相关资源
        最近更新 更多