【发布时间】:2014-06-08 23:29:06
【问题描述】:
这可能是一个简单(但令人恼火)的问题。如何删除所有更改删除自上次提交以来的更改?我搞砸了一个补丁,我想回到我上次提交时的状态。
我试过了:
git reset --hard master
和
git checkout master
但我的文件夹中没有删除我添加/更改的文件(它们仍被列为未跟踪文件。)
【问题讨论】:
这可能是一个简单(但令人恼火)的问题。如何删除所有更改删除自上次提交以来的更改?我搞砸了一个补丁,我想回到我上次提交时的状态。
我试过了:
git reset --hard master
和
git checkout master
但我的文件夹中没有删除我添加/更改的文件(它们仍被列为未跟踪文件。)
【问题讨论】:
未跟踪的文件就是这样,未跟踪。 Git 不知道也不关心它们。 git reset --hard 只会将跟踪的文件恢复到它们在最近(或命名)提交时所处的状态。
您可以使用git clean 从工作树中删除未跟踪的文件和目录。小心你不会不小心删除任何辛苦的工作!
“银弹”将存储库恢复到最近一次提交时的状态,就像您刚刚克隆它一样(这甚至会删除所有被存储库“忽略”的用户文件!)将是:git reset --hard && git clean -fdx。 (如果您省略 x 标志,那么它只会删除未被忽略的未跟踪文件,例如可能包括构建产品。)
【讨论】:
-f 参数,否则它将拒绝操作。您可以改为指定 -n 参数,以查看如果您提供了 -f,它会做什么,而无需实际执行。
我希望我可以对此发表评论,但请查看: How to undo last commit(s) in Git?
【讨论】:
这个有点晚了,但是看到在 2017/09/26 上,这仍然被谷歌搜索引擎索引为第三,这是我的回应。我通过这个堆栈交换讨论找到了对我有用的东西:git undo all uncommitted or unsaved changes
基本上如果你还没有使用过 git add 然后使用:
git checkout .
要取消暂存使用 git add 暂存的文件,请使用:
git reset
【讨论】: