【问题标题】:how to remove changes since last git commit如何删除自上次 git commit 以来的更改
【发布时间】:2014-06-08 23:29:06
【问题描述】:

这可能是一个简单(但令人恼火)的问题。如何删除所有更改删除自上次提交以来的更改?我搞砸了一个补丁,我想回到我上次提交时的状态。

我试过了:

git reset --hard master

git checkout master

但我的文件夹中没有删除我添加/更改的文件(它们仍被列为未跟踪文件。)

【问题讨论】:

标签: git revert


【解决方案1】:

未跟踪的文件就是这样,未跟踪。 Git 不知道也不关心它们。 git reset --hard 只会将跟踪的文件恢复到它们在最近(或命名)提交时所处的状态。

您可以使用git clean 从工作树中删除未跟踪的文件和目录。小心你不会不小心删除任何辛苦的工作!

“银弹”将存储库恢复到最近一次提交时的状态,就像您刚刚克隆它一样这甚至会删除所有被存储库“忽略”的用户文件!)将是:git reset --hard && git clean -fdx。 (如果您省略 x 标志,那么它只会删除未被忽略的未跟踪文件,例如可能包括构建产品。)

【讨论】:

  • 是否需要操作员? git 实际上拒绝这样做(并毫不含糊地告诉我)它说它需要 -i -n 或 -f
  • @Hoytman 我建议阅读手册页。默认情况下,除非您指定 -f 参数,否则它将拒绝操作。您可以改为指定 -n 参数,以查看如果您提供了 -f,它做什么,而无需实际执行。
【解决方案2】:

我希望我可以对此发表评论,但请查看: How to undo last commit(s) in Git?

这里: http://git-scm.com/docs/git-reset

【讨论】:

    【解决方案3】:

    这个有点晚了,但是看到在 2017/09/26 上,这仍然被谷歌搜索引擎索引为第三,这是我的回应。我通过这个堆栈交换讨论找到了对我有用的东西:git undo all uncommitted or unsaved changes

    基本上如果你还没有使用过 git add 然后使用:

    git checkout .
    

    取消暂存使用 git add 暂存的文件,请使用:

    git reset
    

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2018-12-28
      • 2022-08-18
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      相关资源
      最近更新 更多