Xcode 8源代码pipe理不会显示冲突
在Xcode更新到版本8.0(8A218a)之后, 只有当某些文件发生冲突时, 才会从Xcode提取git存储库的更改。 我们都在同一个分支上工作。
只要没有冲突,一切都完美,我可以承诺,拉和推。
但是我发现,只要有一些文件发生冲突 , Xcode就不会再显示冲突了。 它只是closures了popup窗口而不显示冲突解决程序窗口。 没有信息或任何东西。 我没有看到
拉成功
信息。 而且我不能推我的提交(因为更改没有拉)得到的消息:
确保所有更改都已从远程存储库中取出,然后重试
我已经尝试过使用terminal ,但冲突的文件变得乱七八糟的消息显示我的和其他人在同一个冲突的文件沿着这些git消息的变化。 其他人正在处理的文件现在显示为我自己的更改/添加。
我也尝试更新Git到最新版本,它是目前2.10.0。 也没有运气。
所以我最终删除了我的副本并克隆了最新的副本,并重新应用了我所做的非常烦人的更改。
有没有人有这个解决scheme?
编辑:这是你可以做一个解决方法,使用terminal :
-
打开terminal并告诉系统Xcode公用程序的位置:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
-
将“opendiff”设置为全局默认的mergetool:
git config --global merge.tool opendiff
-
手动打开Xcode mergetool,摆脱通常的冲突:
git mergetool
-
保存更改,提交,推送。
我在terminal中使用git来解决这个问题,使用mergetool。 Fisrt,我拉了一些变化,但哎呀,不是最新的:
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
使用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.
回答: 如何解决Git中的合并冲突?
以下一系列操作解决了这个问题:
退出Xcode
打开terminal并cd到项目的文件夹
git checkout – 。
混帐拉
查看pull命令的输出。 它应该宣布其中一个文件存在冲突。 在外部编辑器中打开这个文件(不是Xcode)。 该文件现在应该包含描述冲突的特殊标记(它们是由GIT添加的)标记看起来像这样:
<<<<<<< HEAD:file.txt Hello world ======= Goodbye >>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
删除标记并解决冲突
git add [文件名]
git commit -m“在[文件名]冲突解决”
混帐推
请更新到Xcode 8.2.1
我有同样的问题,但是一旦我更新了我的Xcode版本到8.2.1就解决了。
我已经解决了今天的所有冲突,这是我在Xcode版本8.1中面临的。
更新你的Xcode到最新版本, 并确保你的合作伙伴也有同样的一个
在使用Github的Xcode 8.1中仍然会发生这种情况。
在terminal做git fetch
,然后再从Xcode拉取似乎解决了我的问题。