Xcode 8源代码管理不显示冲突
在Xcode更新到8.0版(8A218a)之后,当一些文件发生冲突时,我从git存储库中从Xcode中提取更改时遇到问题。我们都在同一个部门工作 只要没有冲突,一切都会很完美,我能够做出承诺、拉动和推动 但我发现,每当我们在某些文件中出现冲突时,Xcode不再显示冲突。它只是关闭拉式弹出窗口,而不显示冲突解决程序窗口。没有任何信息。我看不出有什么问题 拉成功 信息。而且我无法推送我的提交(因为没有拉取更改)以获取以下消息: 确保已从远程存储库中提取所有更改,并 再试一次 我曾尝试使用终端拉取,但冲突文件被git消息弄乱了,这些git消息显示了我和其他人在同一冲突文件中沿着这些git消息所做的更改。其他人正在处理的文件现在显示为我自己的更改/添加 我还尝试将git更新到最新版本,目前是2.10.0。也不走运 因此,我最终删除了我的副本,克隆了最新的副本,并重新应用了我所做的更改,这非常烦人 有人能解决这个问题吗 编辑: 以下是您可以使用终端解决问题的方法:Xcode 8源代码管理不显示冲突,xcode,git,version-control,xcode8,Xcode,Git,Version Control,Xcode8,在Xcode更新到8.0版(8A218a)之后,当一些文件发生冲突时,我从git存储库中从Xcode中提取更改时遇到问题。我们都在同一个部门工作 只要没有冲突,一切都会很完美,我能够做出承诺、拉动和推动 但我发现,每当我们在某些文件中出现冲突时,Xcode不再显示冲突。它只是关闭拉式弹出窗口,而不显示冲突解决程序窗口。没有任何信息。我看不出有什么问题 拉成功 信息。而且我无法推送我的提交(因为没有拉取更改)以获取以下消息: 确保已从远程存储库中提取所有更改,并 再试一次 我曾尝试使用终端拉取,但
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
git config --global merge.tool opendiff
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”。