Git 帮助 UserInterfaceState.xcuserstate:警告:合并冲突:文件仍标记为冲突
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12192649/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Git Help UserInterfaceState.xcuserstate: warning: Merge conflict: File still marked as conflicted
提问by Milliways
I have a project I have been working on in Xcode 4.4.1, and wanted to go back to a previous Branch. (Note branches are not complex, but represent a linear development)
我有一个我一直在 Xcode 4.4.1 中工作的项目,并想回到以前的分支。(注意分支并不复杂,但代表线性发展)
When I selected the previous branch there was a warning
当我选择上一个分支时出现警告
UserInterfaceState.xcuserstate: warning: Merge conflict: File still marked as conflicted
Everything looked OK, but all the build and run menu items are greyed out, so I can't do anything.
一切看起来都不错,但所有构建和运行菜单项都变灰了,所以我什么也做不了。
I tried to to revert to the latest branch, and this looks OK, but there is still a Merge conflict MyProject.xcodeproj/project.xcworkspace/xcuserdata/ian.xcuserdatad/UserInterfaceState.xcuserstate: warning: Merge conflict: File still marked as conflicted
我试图恢复到最新的分支,这看起来不错,但仍然存在合并冲突 MyProject.xcodeproj/project.xcworkspace/xcuserdata/ian.xcuserdatad/UserInterfaceState.xcuserstate:警告:合并冲突:文件仍然标记为冲突
I have tried a git status, which did not help
我尝试了 git status,但没有帮助
# 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
I tried a git reset HEAD, but this did not seem to help, and I do not know where to go from here.
我尝试了 git reset HEAD,但这似乎没有帮助,我不知道从哪里开始。
Git is handy for checking code against previous versions, but I get into trouble whenever I try to swap versions.
Git 可以方便地根据以前的版本检查代码,但是每当我尝试交换版本时都会遇到麻烦。
My current problems seem to have been exacerbated when I tried to create a workspace and add another project. The original project was created under Xcode 3 and the project and files are immediately under the project directory.
当我尝试创建一个工作区并添加另一个项目时,我当前的问题似乎更加严重。原始项目是在 Xcode 3 下创建的,项目和文件直接位于项目目录下。
EDIT - Resolved
编辑 - 已解决
The answers below did not resolve the issue, but both were helpful.
下面的答案没有解决问题,但都很有帮助。
I saved my code from the project directory, removed the latest branch with
我从项目目录中保存了我的代码,删除了最新的分支
git reset --hard HEAD~1
then copied the changed files back to the project directory
然后将更改的文件复制回项目目录
I also updated my .gitignore (which I thought I had done before)
我还更新了我的 .gitignore (我以为我以前做过)
回答by djm
I had the same problem you had after resolving my conflicts and this is how I fixed it. If you use Xcode to keep track of your git repo try the following. 1. I resolved all the conflicts then saved the resolved files. 2. Go to File -> Source Control -> Mark As Resolved
我在解决冲突后遇到了与您相同的问题,这就是我解决的方法。如果您使用 Xcode 来跟踪您的 git repo,请尝试以下操作。1.我解决了所有冲突,然后保存了解决的文件。2. 转到文件 -> 源代码管理 -> 标记为已解决
Voila Xcode no longer recognizes these files as having conflicts. Hopefully this works for someone.
瞧 Xcode 不再将这些文件识别为有冲突。希望这对某人有用。
回答by Vince
When there is a merge conflict, you MUST resolve it first. (well maybe you can run git merge --abort
to revert).
当出现合并冲突时,您必须首先解决它。(好吧,也许你可以跑git merge --abort
回去恢复)。
So the process is you open your conflicting file, you look for the conflict, resolve it (edit the conflicting lines), then save your file, add it (using git add -u
) and commit it.
所以这个过程是你打开你的冲突文件,你查找冲突,解决它(编辑冲突行),然后保存你的文件,添加它(使用git add -u
)并提交它。
Then you can work on a clean work directory.
然后你可以在一个干净的工作目录上工作。
By the way, a conflict probably looks like:
顺便说一下,冲突可能看起来像:
<<<<<<< yours:sample.txt
Conflict resolution is hard;
let's go shopping.
=======
Git makes conflict resolution easy.
>>>>>>> theirs:sample.txt
reference: http://www.kernel.org/pub/software/scm/git/docs/git-merge.html
参考:http: //www.kernel.org/pub/software/scm/git/docs/git-merge.html
回答by Matt Hudson
Running
跑步
git mergetool
and resolving the conflicts fixed the problem for me.
并解决冲突为我解决了问题。
As a side note I use Command-D to navigate to conflicts, pick a side in bottom right hand corner of FileMerge, then Command-S Command-Q (on Mac) once finished to save and quit.
作为旁注,我使用 Command-D 导航到冲突,在 FileMerge 的右下角选择一侧,然后 Command-S Command-Q(在 Mac 上)完成保存并退出。
回答by hlfcoding
First and foremost, make a good habit of adding *.xcuserstate
and patterns to ignore other user-specific project files to your .gitignore
. There's a popular github repo for .gitignore files, including one for Xcode projects.
首先,养成*.xcuserstate
在.gitignore
. 有一个用于 .gitignore 文件的流行 github 存储库,包括一个用于 Xcode 项目的存储库。
In addition to resolving merge conflicts (as mentioned), you should also make a good habit to stash your changes while checkout-ing out different heads (branches, tags, etc).
除了解决合并冲突(如上所述)之外,您还应该养成一个好习惯,在检出不同的 head(分支、标签等)时隐藏您的更改。