git - git checkout 不会删除新添加的文件
问题描述
我想将我的 repo 恢复为先前提交的确切状态。然后进行新的提交(作为还原的一部分)并推送到远程。我不想使用git push -f
,所以我不想重写提交。我想使用一个新的提交并撤消多项更改。
所以我跑了git checkout [HASH] -- .
但我意识到这个命令并不能完全恢复原状。在以后的提交中添加的文件实际上并没有被删除。
我究竟如何在 git 中恢复?
解决方案
它的工作方式与 相同git reset --hard
,但有一个重要区别,即git checkout
工作目录 安全,因此它不会覆盖工作目录中的现有更改。
如果您希望撤消/恢复提交,您可以执行以下操作,使用commit hash
来自您将恢复的提交:
git revert <commit hash>
但是你也可以清除你的工作目录,然后你可以做git checkout <commit hash>
推荐阅读
- c++ - cmake ist 将静态库(c++fs)不在链接器命令的末尾
- android - 如何获取从列表视图中选择的项目的字符串值
- angular - 如何在angular6中进行两个不同的数组结果操作
- vb.net - 创建 Windows 还原点?
- c++ - 从 C++ 中的服务器读取二进制数据时清除缓冲区
- mysql - 如何在 GPS 跟踪器数据中找到开始和停止或中断?
- laravel - npm run watch 说错误
- android - 在房间数据库中保存多个 Arraylist - 最好的方法?
- c - 调用 make 时缺少分隔符
- c++ - 通过 Sublime Text 编译 C++ 并在 Mac Terminal 中运行