为什么我不能切换分支?

时间:2011-05-14 15:17:27

标签: git xcode4

我正在尝试在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

7 个答案:

答案 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的博客文章是:

  • Ray Wenderlich on Xcode 4.5
  • Oliver Steele from 2008

  • 答案 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
    

    之后只需切换你的分支。这应该可以解决问题。

    相关问题