我正在尝试在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
如果您不想要git status中列出的任何合并,请尝试此操作:
git reset --merge
这将重置索引并更新工作树中<commit>
和HEAD
之间不同的文件,但保留索引和工作树之间不同的文件(即具有尚未添加的更改)。
如果<commit>
和索引之间不同的文件具有未分阶段的更改 - 重置将中止。
更多关于这个 - https://www.techpurohit.com/list-some-useful-git-commands和Doc链接 - https://git-scm.com/docs/git-reset
如果合并产生冲突,你最终会在both modified
的输出中使用git status
。在您解决了这些冲突之前,git不允许您更改分支。如果您编辑该文件,您应该会看到一些冲突标记 - 有一个guide to resolving those conflicts in the git manual。 (由于kernel.org目前已关闭,您可以找到该指南here。)
或者,如果您认为合并是一个错误,您可以使用:git reset --merge
撤消它
如果您不关心git所说的未完成的更改,那么您可以进行强制检查。
git checkout -f {{insert your branch name here}}
你可以用HEAD重置你的分支
git reset --hard branch_name
然后获取分支并删除不在本地远程的分支,
git fetch -p
当我从远程更新新文件时,我收到了这条消息,而索引也没有了。试图修复索引,但通过Xcode 4.5,GitHub.app(103)和GitX.app(0.7.1)解析失败。所以,我这样做了:
git commit -a -m "your commit message here"
它绕过了git索引。
两篇帮助我了解Git和Xcode的博客文章是:
在切换分支之前,您需要提交或销毁任何未保存的更改。
如果意味着未删除未保存的更改,Git将不允许您切换分支。
由于文件都被两者修改,您需要添加它
git add Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
或者,如果您想忽略您的更改,那么请执行此操作
git reset HEAD Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
之后只需切换你的分支。这应该可以解决问题。