扔掉git中的本地提交

由于一些糟糕的樱桃采摘,我的本地git存储库目前提交5个提交之前,并没有一个良好的状态。 我想摆脱所有这些提交并重新开始。

显然,删除我的工作目录和重新克隆会做到这一点,但再次从github下载所有东西似乎是过度的,并没有很好地利用我的时间。

也许git revert是我需要的,但是我不想在原点(甚至是6)之前提交10次提交,即使它确实让代码本身恢复到正确的状态。 我只想假装从未发生的最后一个半小时。

有没有一个简单的命令可以做到这一点? 这似乎是一个明显的用例,但我没有找到任何示例。


请注意,这个问题具体是关于提交,而不是关于:

  • 未跟踪的文件
  • 未分级的变化
  • 分阶段但未确定的变化

  • 如果你的超额提交只对你可见,你可以做git reset --hard origin/<branch_name>来回到原始位置。

    做一次git revert会使新的提交以一种保持每个人的历史记录健全的方式删除旧的提交。


    只需删除您的本地主分支并重新创建它就像这样:

    git branch -D master
    git checkout origin/master -b master
    

    尝试:

    git reset --hard <the sha1 hash>
    

    重置你的头到你想去的任何地方。 使用gitk来查看你想要的提交。 你也可以在gitk中重置。

    链接地址: http://www.djcxy.com/p/4035.html

    上一篇: Throw away local commits in git

    下一篇: Undoing a git reset to uncommited state before reset?