【问题标题】:How to use XCode's mergetool to resolve conflicts?如何使用 XCode 的 mergetool 解决冲突?
【发布时间】:2019-02-26 15:54:34
【问题描述】:

我正处于 rebase 的中间,我需要修复一些合并冲突。当我在 XCode 中打开文件时,我会在文件中看到源代码管理冲突标记(

如何使用 XCode 的合并工具以图形方式解决这些冲突?我正在寻找这个屏幕:

【问题讨论】:

  • 为什么不直接在文本中解决冲突呢? ——还有,你是怎么陷入这种境地的?我打赌你在 Xcode 之外做了 rebase,对吧?
  • 是的,我做到了。我应该在xcode中完成吗?我什至不知道该怎么做...如果您有合并冲突,XCode 的行为会根据您遇到这种情况的方式而有所不同?
  • 其实我的观点正好相反:不,你不应该在 Xcode 中完成它,因为你不能,所以你必须在其他地方完成它 - 那么为什么你要使用 Xcode 来解决冲突?例如,如果您使用 SourceTree 进行了 rebase,则可以使用 SourceTree 解决冲突——或者,正如我所说,直接在文本中,这通常是最简单的方法。
  • @matt 查看我对您的回答的评论。这不是关于需要一个更好的工具,而是关于知道一个可用但不知道如何访问它。说 FileMerge 是 imgur.com/hI82XQE 的等效图形界面,就像在编辑 swift 文件时说 TextEdit 等效于 XCode。在解决与我的 swift 文件的冲突时,我想使用专为 swift 文件设计的代码编辑器。 XCode有这个功能,我就是不知道怎么访问。
  • 所以我想这是我的问题的不幸答案。正如您一直在说的,在变基期间使用该工具解决合并冲突是不可能的。 XCode 根本不支持变基流程。 stackoverflow.com/a/8737859/1160216。显然,启动该工具的唯一方法是使用 XCode 的 UI 进行合并,如我首先获得屏幕截图的页面所述:raywenderlich.com/…。 WBN,如果您可以启动该工具并在文件中带有源代码标记的任何文件上使用它,就像使用 FileMerge 一样。

标签: xcode merge xcode10 merge-conflict-resolution git-merge-conflict


【解决方案1】:

here获取答案

# Tell system where Xcode utilities live:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

# Set "opendiff" as the default mergetool globally:
git config --global merge.tool opendiff

然后,当git 告诉您存在冲突时,您可以运行git mergetool,它将打开 XCode 的合并工具(如问题的屏幕截图所示),您可以解决冲突。

【讨论】:

  • 我也是这么告诉他的。不幸的是,这不是他想要的答案。
【解决方案2】:

FileMerge 工具是一个单独的应用程序,您可以从 Xcode 菜单中打开它:

【讨论】:

  • 注意,如果你使用的是SourceTree等外部图形化git界面,你可以指定FileMerge为图形化合并工具。
  • FileMerge 看起来不像我的屏幕截图中的那样。它看起来像这样:imgur.com/hI82XQE。我正在运行 XCode 10.1。我需要以某种方式更新 FileMerge 吗?我的问题截图中的内容不是 FileMerge 吗?
  • 我不明白你想要什么。这是在 Xcode 之外完成的 rebase 冲突,因此我认为您不会获得原始屏幕截图中显示的相同屏幕。您的 imgur 屏幕截图显示了一个以图形方式解决合并冲突的精彩界面。或者,正如我之前所说,直接编辑文本是微不足道的。问题已经解决了。解决冲突并继续前进。
  • 这个“美妙的界面”没有语法高亮或任何使 XCode 可用的特性。它只是一个香草文本编辑器。我想在 XCode 的编辑器中修复我的合并冲突。我知道可以手动修复所有错误。也可以在 TextEdit 中编写代码,但是当有更好的工具让您的生活更轻松时,您为什么还要这样做呢? “我想要的”是访问我问题截图中的工具,这将使我的生活更轻松。它存在。我怎样才能访问它?
  • 不过,我确实喜欢你的回答。我不知道如何从 XCode 访问 FileMerge - 感谢分享!不幸的是,FileMerge 不是我正在寻找的工具。
【解决方案3】:

我认为您混淆了 Xcode 版本控制和合并工具。您可以通过以下方式查看 git 更改:

View > Version Editor > Show Comparison View.

它会并排显示提交之前和之后的内容。据我所知,合并冲突对您没有多大帮助。

如果您在pbxproj 文件中遇到严重的合并冲突,那么我建议您使用visual studio 打开该文件。

或者这个?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 2023-03-21
    • 2015-08-30
    • 2012-01-09
    • 2016-02-22
    • 2013-11-09
    • 1970-01-01
    • 2015-11-19
    相关资源
    最近更新 更多