繁体   English   中英

Xcode 8源代码控制不显示冲突

[英]Xcode 8 source control does not show conflicts

在Xcode更新到版本8.0(8A218a)之后, 在某些文件发生冲突时才从Xcode中删除git存储库中的更改。 我们都在同一个分支机构工作。

只要没有冲突,一切都很完美,我能够提交,拉动和推动。

但我发现每当我们在某些文件中发生冲突时, Xcode就不会再出现冲突了。 它只是关闭拉动弹出窗口而不显示冲突解决程序窗口。 没有信息或任何东西。 我没看到

拉成功

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

确保已从远程存储库中提取所有更改,然后重试

我试过使用终端拉,但是冲突的文件搞砸了git消息,显示我和其他人在这些git消息的同一个冲突文件中的变化。 其他人正在处理的文件现在显示为我自己的更改/添加。

我也尝试将git更新到最新版本,目前是2.10.0。 也没有运气。

所以我最终删除了我的副本并克隆了最新版本并重新应用了我所做的非常烦人的更改。

有人有解决方案吗?

编辑:以下是使用终端解决方法

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

     sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer 
  2. 将“opendiff”设置为全局默认的mergetool:

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

     git mergetool 
  4. 保存更改,提交,推送。

我在终端使用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

打开终端并cd到项目的文件夹

git checkout - 。

git pull

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

<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt

删除标记并解决冲突

git add [文件名]

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

git push

请更新到Xcode 8.2.1

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

我已经解决了今天所有冲突,我在Xcode版本8.1中遇到了这些冲突。

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

使用Github仍然在Xcode 8.1中发生在我身上。

在终端中进行git fetch ,然后再从Xcode中git fetch似乎可以解决我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM