Git Help UserInterfaceState.xcuserstate:警告:合并冲突:文件仍标记为冲突

时间:2012-08-30 08:17:11

标签: git xcode4

我有一个我在Xcode 4.4.1中工作的项目,并想回到之前的分支。 (注意分支并不复杂,但代表线性发展)

当我选择上一个分支时,有一个警告

UserInterfaceState.xcuserstate: warning: Merge conflict: File still marked as conflicted

一切看起来都不错,但所有构建和运行菜单项都是灰色的,所以我什么也做不了。

我试图恢复到最新的分支,这看起来还不错,但仍然存在合并冲突     MyProject.xcodeproj / project.xcworkspace / xcuserdata / ian.xcuserdatad / UserInterfaceState.xcuserstate:警告:合并冲突:文件仍标记为冲突

我尝试过git状态,但没有帮助

# Unmerged paths:
...
#   deleted by them:    MyProject.xcodeproj/project.xcworkspace/xcuserdata/ian.xcuserdatad/UserInterfaceState.xcuserstate
#
# Changes not staged for commit:
...
#
#   deleted:    MyProject.xcodeproj/xcuserdata/ian.xcuserdatad/xcschemes/QuollEyeTree.xcscheme

我尝试了一个git reset HEAD,但这似乎没有帮助,我不知道从哪里开始。

Git可以方便地检查以前版本的代码,但每当我尝试交换版本时都会遇到麻烦。

当我尝试创建工作区并添加另一个项目时,我当前的问题似乎已经加剧了。 原始项目是在Xcode 3下创建的,项目和文件紧挨着项目目录。

编辑 - 已解决

以下答案并未解决问题,但两者都有帮助。

我从项目目录中保存了我的代码,用

删除了最新的分支
git reset --hard HEAD~1

然后将更改的文件复制回项目目录

我还更新了我的.gitignore(我之前认为我曾做过)

4 个答案:

答案 0 :(得分:16)

解决冲突后我遇到了同样的问题,这就是我修复它的方法。 如果您使用Xcode跟踪您的git repo,请尝试以下操作。 1.我解决了所有冲突,然后保存了已解决的文件。 2.转到文件 - >源控制 - >标记为已解决

Voila Xcode不再将这些文件识别为存在冲突。希望这适用于某人。

答案 1 :(得分:5)

当存在合并冲突时,您必须先解决它。 (也许你可以运行git merge --abort来恢复)。

所以这个过程是你打开你的冲突文件,你找出冲突,解决它(编辑冲突的行),然后保存你的文件,添加它(使用git add -u)并提交它。

然后你可以在干净的工作目录上工作。

顺便说一下,冲突可能看起来像:

<<<<<<< yours:sample.txt
Conflict resolution is hard;
let's go shopping.
=======
Git makes conflict resolution easy.
>>>>>>> theirs:sample.txt

参考:http://www.kernel.org/pub/software/scm/git/docs/git-merge.html

答案 2 :(得分:4)

正在运行

git mergetool 

并解决冲突为我解决了问题。

作为附注,我使用Command-D导航到冲突,在FileMerge的右下角选择一侧,然后在完成保存并退出后在Command-S Command-Q(在Mac上)。

答案 3 :(得分:1)

首先,养成添加*.xcuserstate和模式的习惯,以忽略其他特定于用户的项目文件到.gitignore。有一个流行的github repo for .gitignore文件,包括一个用于Xcode项目的文件。

除了解决合并冲突(如上所述)之外,你还应该养成一个好习惯,在结帐不同的头(分支,标签等)时隐藏你的更改。