在SourceTree中解决Git冲突

10
我以前使用NetBeans GIT插件,现在决定转换到SourceTree,因为它更高效和强大。作为一个SourceTree的新手,我已经掌握了基本的拉取、推送和提交工作流程。
然而,当与我的朋友合并时出现文件冲突时,我卡住了。在NetBeans中,如果有任何冲突,插件会建议在弹出窗口中解决它,我只想通过点击按钮进入冲突解决界面并接受正确的代码块。那很简单。
在SourceTree中,有一个叫做“外部合并工具”的东西,但对我来说并不好用。当我右键单击有冲突的文件时,它只是打开两个文件并排放置,并在中间用箭头指向左右。屏幕底部有一个下拉菜单,可以选择箭头方向。
我试图使用这个界面来解决冲突,但失败了。它没有修复冲突,反而将两个文件合并了。
在搜索了互联网后,我发现有些人使用外部的SourceTree冲突解决插件进行合并。实际上,我有点迷失了。这就是为什么我决定在这里发布这个问题,因为这可能会帮助像我这样的人。
我知道有很多人已经使用SourceTree很长时间了。他们中的任何一个都可以告诉我,在SourceTree中如何有效地解决冲突吗?
我应该使用外部插件还是应该使用“外部合并工具”(如果是这样,我该如何使用它)?
1个回答

14

我正在使用SourceTree和TortoiseMerge / Diff,这是一个非常方便易用的差异/合并工具。

如果您也想使用它,则需要:

  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 / Merge。在两个下拉列表中都选择TortoiseMerge

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

之后,您可以在本地存储库中的每个有冲突的文件上右键单击选择Resolve Conflicts > Launch External Merge Tool。这将打开TortoiseMerge,在那里您可以轻松处理所有冲突。完成后,只需关闭TortoiseMerge(可能会自动保存更改),几秒钟后SourceTree应该将其处理得非常好。

唯一的问题是它会自动创建备份副本,即使选项已取消选中

另一个解决方案解决了这个问题,使用KDiff3代替TortoiseDiff/TortoiseMerge


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接