为什么我不能转换分支?
我试图在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状态中列出任何合并,试试这个:
git reset --merge
这将重置索引并更新工作树中<commit>
和HEAD
之间不同的文件,但保留索引和工作树(即没有添加更改)之间不同的文件。
如果<commit>
和索引之间的文件有不同的变化 – reset被中止。
更多关于这个 – https://git-scm.com/docs/git-reset
如果合并产生冲突,则最终会在git status
输出中进行both modified
。 git不会让你改变分支,直到你解决了这些冲突。 如果你编辑这个文件,你会看到一些冲突标记 – 有一个解决git手册中的冲突的指南 。 (由于kernel.org目前处于closures状态,您可以在这里find该指南。)
或者,如果您认为合并是一个错误,您可以使用以下命令将其撤销: git reset --merge
当从远程更新新文件和索引失控时,我收到了这条消息。 试图修复索引,但通过Xcode 4.5解决,GitHub.app(103)和GitX.app(0.7.1)失败。 所以,我这样做了:
git commit -a -m "your commit message here"
它绕过了git索引。
两篇帮助我了解Git和Xcode的博客文章是:
你可以用HEAD重置你的分支
git reset --hard branch_name
然后取出分支并删除不在本地的分支,
git fetch -p
如果你不关心git所说的变化,那么你可以做一个强制结账。
git checkout -f {{insert your branch name here}}
您需要在切换分支之前提交或销毁任何未保存的更改。
Git不会让你切换分支,如果这意味着未保存的更改将被删除。
由于文件被两者修改,所以您需要添加它
git add Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
或者如果你想忽略yoyr的变化,那就去做吧
git reset HEAD Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
之后,只需切换你的分支。这应该做的伎俩。