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