【问题标题】:What is the git command to erase all changes and revert to the state of your last commit?清除所有更改并恢复到上次提交状态的 git 命令是什么?
【发布时间】:2011-08-30 01:15:41
【问题描述】:

我做了很多无用的更改,并希望恢复到我的仓库在进行任何更改之前的状态。

有没有 git 命令可以做到这一点?

谢谢!

【问题讨论】:

    标签: git github command reversion


    【解决方案1】:

    首先,恢复对跟踪文件的更改:

    git reset --hard HEAD
    

    git reset 单独重置索引;添加--hard 也会重置工作副本。如果您已经提交,请指定一个不同的提交以重置为 - 例如,HEAD^ 以恢复到 HEAD 的父提交(即,删除最新的提交)。

    接下来,删除所有未跟踪的文件:

    git clean -dfx
    

    -d 告诉它删除目录,-f 强制它实际执行删除,-x 跳过 .gitignored 文件。

    【讨论】:

    • 在执行git reset --hard HEAD 之后,我还剩下三个# modified: vendor/plugins/human_attribute_override (modified content)
    • 理论上--hard 应该这样做,但如果这不起作用,请尝试git checkout -f
    • git checkout -f也没有解决那三个小鼻屎。
    • 谢谢大哥!我很感激。有问题的三个文件实际上是目录..奇怪。
    • 啊!这是因为它们是子模块.. 不知道如何处理这些。
    【解决方案2】:

    如果我理解正确,您已经提交了某些内容并希望将其还原git reset --hard HEAD^

    如果你还没有提交任何东西,只是你的工作树搞砸了,那么git reset --hard HEAD

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-21
      • 2011-06-27
      • 1970-01-01
      • 2013-04-20
      • 2011-03-15
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多