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 ,因此难以重置会使索引文件和工作树返回到该状态,并将分支的尖端重置为该提交。
  • 有关更多信息,请参阅HEADORIG_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

    上一篇: Git pull into wrong branch

    下一篇: git replace local version with remote version