我正在尝试在git中切换分支但是我收到此错误消息:
error: you need to resolve your current index first
我在xcode4下使用git
git status
# On branch DateCode
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
#
no changes added to commit (use "git add" and/or "git commit -a")
Frappuccinos-MacBook-Pro:whereami
答案 0 :(得分:88)
如果您不希望git status中列出任何合并,请尝试此操作:
git reset --merge
这将重置索引并更新工作树中<commit>
和HEAD
之间不同的文件,但保留索引和工作树之间不同的文件(即具有更改的文件)没有添加)。
如果<commit>
与索引之间不同的文件有未分阶段的更改,则会中止重置。
有关此内容的更多信息 - https://www.techpurohit.com/list-some-useful-git-commands&amp;文档链接 - https://git-scm.com/docs/git-reset
答案 1 :(得分:53)
如果合并产生冲突,您最终会在both modified
的输出中使用git status
。在您解决了这些冲突之前,git不允许您更改分支。如果您编辑该文件,您应该会在其中看到一些冲突标记 - 有一个guide to resolving those conflicts in the git manual。 (由于kernel.org目前已关闭,您可以找到该指南here。)
或者,如果您认为合并是一个错误,您可以使用:git reset --merge
答案 2 :(得分:14)
如果您不关心git所说的未完成的更改,那么您可以强制结帐。
git checkout -f {{insert your branch name here}}
答案 3 :(得分:6)
您可以使用HEAD重置分支
git reset --hard branch_name
然后获取分支并删除不在本地远程的分支
git fetch -p
答案 4 :(得分:5)
从远程更新新文件时,我收到此消息,而索引已经失败了。试图修复索引,但通过Xcode 4.5,GitHub.app(103)和GitX.app(0.7.1)解析失败。所以,我这样做了:
git commit -a -m "your commit message here"
绕过git索引。
两篇帮助我了解Git和Xcode的博客文章是:
答案 5 :(得分:1)
在切换分支之前,您需要提交或销毁任何未保存的更改。
Git不会让你切换分支,如果这意味着将删除未保存的更改。
答案 6 :(得分:1)
由于文件被两者修改,您需要通过
添加它git add Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
或者如果您想忽略yoyr更改,请执行
git reset HEAD Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
之后只需切换你的分支。这应该可以解决问题。