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

Git Help UserInterfaceState.xUserState:警告:合并冲突:文件仍标记为冲突,git,xcode4,Git,Xcode4,我有一个在Xcode 4.4.1中工作的项目,我想回到以前的分支。 (注意分支并不复杂,但代表线性发展) 当我选择上一个分支时,出现了一个警告 UserInterfaceState.xcuserstate: warning: Merge conflict: File still marked as conflicted 看起来一切正常,但是所有的构建和运行菜单项都变灰了,所以我什么都做不了 我试图恢复到最新的分支,这看起来不错,但仍然存在合并冲突 MyProject.xcodeproj/pro

我有一个在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重置头,但这似乎没有帮助,我不知道从这里去哪里

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

当我试图创建一个工作区并添加另一个项目时,我当前的问题似乎更加严重了。 原始项目是在Xcode 3下创建的,项目和文件直接位于项目目录下

编辑-解析

下面的答案并没有解决这个问题,但两者都很有帮助

我从项目目录中保存了代码,用删除了最新的分支

git reset --hard HEAD~1
然后将更改的文件复制回项目目录


我还更新了我的.gitignore(我以前以为我已经这样做了)

当出现合并冲突时,必须首先解决它。(也许您可以运行
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

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

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

git mergetool 
解决这些冲突为我解决了这个问题


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

我遇到了与解决冲突后遇到的问题相同的问题,我就是这样解决的。 如果使用Xcode跟踪git回购,请尝试以下操作。 1.我解决了所有冲突,然后保存了已解决的文件。 2.转到文件->源代码管理->标记为已解决


瞧,Xcode不再认为这些文件有冲突。希望这对某人有用。

我了解解决冲突,但我如何为MyProject.xcodeproj/project.xcworkspace做到这一点这在Xcode PS中没有显示参考资料看起来很有用我想你应该看看列出的不同文件,其中一个可能有冲突。如果没有,只需将其提交(即运行
git add
)并提交即可。您可以在提交之前运行diff,以确保冲突得到解决。如果文件被删除,您可以对其使用
git reset
。我不记得你应该如何使用它,但你可以找它的参考文件。谢谢你!我想这是最好的解决方案,效果非常好。多年后,我感谢你,mergetool是我更新工作区断点文件的唯一方法。对于其他人,你可以使用“git mergetool-t opendiff”打开Mac的FileMerge工具。