Xcode 8源代码管理不显示冲突

Xcode 8源代码管理不显示冲突,xcode,git,version-control,xcode8,Xcode,Git,Version Control,Xcode8,在Xcode更新到8.0版(8A218a)之后,当一些文件发生冲突时,我从git存储库中从Xcode中提取更改时遇到问题。我们都在同一个部门工作 只要没有冲突,一切都会很完美,我能够做出承诺、拉动和推动 但我发现,每当我们在某些文件中出现冲突时,Xcode不再显示冲突。它只是关闭拉式弹出窗口,而不显示冲突解决程序窗口。没有任何信息。我看不出有什么问题 拉成功 信息。而且我无法推送我的提交(因为没有拉取更改)以获取以下消息: 确保已从远程存储库中提取所有更改,并 再试一次 我曾尝试使用终端拉取,但

在Xcode更新到8.0版(8A218a)之后,当一些文件发生冲突时,我从git存储库中从Xcode中提取更改时遇到问题。我们都在同一个部门工作

只要没有冲突,一切都会很完美,我能够做出承诺、拉动和推动

但我发现,每当我们在某些文件中出现冲突时,Xcode不再显示冲突。它只是关闭拉式弹出窗口,而不显示冲突解决程序窗口。没有任何信息。我看不出有什么问题

拉成功

信息。而且我无法推送我的提交(因为没有拉取更改)以获取以下消息:

确保已从远程存储库中提取所有更改,并 再试一次

我曾尝试使用终端拉取,但冲突文件被git消息弄乱了,这些git消息显示了我和其他人在同一冲突文件中沿着这些git消息所做的更改。其他人正在处理的文件现在显示为我自己的更改/添加

我还尝试将git更新到最新版本,目前是2.10.0。也不走运

因此,我最终删除了我的副本,克隆了最新的副本,并重新应用了我所做的更改,这非常烦人

有人能解决这个问题吗

编辑: 以下是您可以使用终端解决问题的方法:

  • 打开终端并告诉系统Xcode实用程序所在的位置:

    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
    
  • 将“opendiff”设置为全局默认合并工具:

    git config --global merge.tool opendiff
    
  • 手动打开Xcode mergetool并以通常的方式消除冲突:

    git mergetool
    
  • 保存更改、提交、推送


  • 以下一系列操作可解决此问题:

    出口Xcode

    打开终端和cd到项目文件夹

    git签出--

    吉特拉力

    查看pull命令的输出。它应该宣布其中一个文件中存在冲突。 在外部编辑器(不是Xcode)中打开此文件。该文件现在应该包含描述冲突的特殊标记(它们是由GIT添加的) 标记如下所示:

    <<<<<<< HEAD:file.txt
    Hello world
    =======
    Goodbye
    >>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
    
    >77976DA35A11DB4580B80AE27E8D65CAF520886:file.txt
    
    删除标记并解决冲突

    changes...no...their changes...
    git checkout --ours filename.c
    git checkout --theirs filename.c
    git add filename.c
    git commit -m "using theirs"
    
    git add[文件名]

    git commit-m“已解决[文件名]中的冲突”


    git push发生在我身上,仍然在使用Github的Xcode 8.1中


    在终端中执行
    git fetch
    ,然后再次从Xcode中提取似乎可以解决这个问题。

    我在终端中使用git来解决这个问题,使用了mergetool。 首先,我做了一些更改,但糟糕的是,不是最新的:

    git fetch origin
    git pull origin master
    
    From ssh://gitosis@example.com:22/projectname
     * branch            master     -> FETCH_HEAD
    Updating a030c3a..ee25213
    error: Entry 'filename.c' not uptodate. Cannot merge.
    
    因此,了解最新情况并重试,但有冲突:

    git add filename.c
    git commit -m "made some wild and crazy changes"
    git pull origin master
    
    From ssh://gitosis@example.com:22/projectname
     * branch            master     -> FETCH_HEAD
    Auto-merging filename.c
    CONFLICT (content): Merge conflict in filename.c
    Automatic merge failed; fix conflicts and then commit the result.
    
    因此,我决定看看这些变化:

    git mergetool
    
    使用合并工具合并冲突

    changes...no...their changes...
    git checkout --ours filename.c
    git checkout --theirs filename.c
    git add filename.c
    git commit -m "using theirs"
    
    然后我们再做最后一次尝试

    git pull origin master
    
    From ssh://gitosis@example.com:22/projectname
     * branch            master     -> FETCH_HEAD
    Already up-to-date.
    

    回答者:

    请更新到Xcode 8.2.1

    我也遇到过同样的问题,但一旦我将Xcode版本更新到8.2.1,问题就解决了


    今天我已经解决了Xcode 8.1版面临的所有冲突。

    将您的Xcode更新到最新版本,并确保您的合作伙伴也有相同的版本。

    我对Xcode 8有相同的问题,未经我的许可,Xcode不会显示任何冲突和覆盖。你找到解决办法了吗?没有,我没有找到解决办法。还在看。。。这看起来像是新Xcode中的一个bug。当我尝试通过终端(命令行)时也会出现同样的问题。为什么?由于Xcode8,将默认git实用程序更改为“Apple git-73”版本2.8.4。-->当我通过brew安装Git时,它会显示版本2.8.1,当我在终端中检查Git版本时,它会显示Git版本2.8.4(Apple Git-73)-->是否有任何方法可以使用其他Git版本,如果可能的话,那么我们可以使用DiffMerge来解决冲突。Xcode 8.1的beta版具有相同的错误Xcode版本控制永远不可信。如果您想使用GUI,我可以推荐“SourceTree”。