首页 > 解决方案 > git checkout 不会删除新添加的文件

问题描述

我想将我的 repo 恢复为先前提交的确切状态。然后进行新的提交(作为还原的一部分)并推送到远程。我不想使用git push -f,所以我不想重写提交。我想使用一个新的提交并撤消多项更改。

所以我跑了git checkout [HASH] -- .

但我意识到这个命令并不能完全恢复原状。在以后的提交中添加的文件实际上并没有被删除。

我究竟如何在 git 中恢复?

标签: gitversion-controlversion

解决方案


它的工作方式与 相同git reset --hard,但有一个重要区别,即git checkout工作目录 安全,因此它不会覆盖工作目录中的现有更改。

如果您希望撤消/恢复提交,您可以执行以下操作,使用commit hash来自您将恢复的提交:

git revert <commit hash>

但是你也可以清除你的工作目录,然后你可以做git checkout <commit hash>


推荐阅读