Git拉错了分支
我和其他一位开发人员合并,将我们的工作推向一个称为工具的非主分支。 这样,我们并没有影响到其他团队。 我的主题分支叫做DPM-93,我的git工作流程就是这样。
# do some work
git checkout DPM-93
git commit -m "did some work"
# catch up
git checkout toolwork
git pull origin toolwork
# rebase my topic branch
git checkout DPM-93
git rebase toolwork
# merge and push my changes
git checkout toolwork
git merge --no-ff DPM-93
git push origin toolwork
这大部分工作正常,直到我意外地发布这些git命令
git checkout toolwork
git pull origin master
那时,一些新的东西出现在分支工具中,我不知道如何摆脱它,因为它没有删除我的工作空间,并从repo中重新克隆。
有没有什么办法可以将它退回到拉之前的状态?
git reset --hard ORIG_HEAD 
  从git reset手册页(如果你只是做了拉): 
撤消合并或拉
$ git pull                         (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard                 (2)
$ git pull . topic/branch          (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD       (4)
pull ”没有进行合并提交,因此“ git reset --hard ”是“ git reset --hard HEAD ”的同义词,从索引文件和工作树中清除混乱。 “拉”或“合并”总是将当前分支的原始尖端留在
ORIG_HEAD ,因此难以重置会使索引文件和工作树返回到该状态,并将分支的尖端重置为该提交。   有关更多信息,请参阅HEAD和ORIG_HEAD 。 
重置主分支:
git reset --hard origin/master
  您可以使用git log来查找您想要在toolwork分支的头部的修订版的SHA-1,然后使用git reset --hard <SHA1>将工作副本恢复到该修订版。 
  先把所有东西都背起来  然后重新阅读git reset的man page,以确保它正在做你想做的事。 
编辑:哦,是的,ORIG_HEAD应该包含正确的SHA-1。 但先检查。
链接地址: http://www.djcxy.com/p/26249.html