有没有办法解除"git revert head"的影响?

blu*_*lds 67 git undo revert

我不小心对我的存储库中的错误分支运行命令 - 是否有办法撤消此更改?

Rom*_*aka 95

git revert只是创建一个新的提交 - 你可以"删除"它git reset --hard HEAD^(但要小心它!)

  • 注意`git reset --hard HEAD ^`,因为它会删除任何未经修改的更改. (2认同)
  • 如果你在 `git reset --hard HEAD^` 之前执行 `git stash` 你可以“保存”你未提交的更改。在`git reset --hard HEAD^` 之后执行`git stash pop` 将未提交的更改重新加载到当前分支中。 (2认同)

jon*_*scb 27

该命令git revert只是创建一个撤消另一个的提交.您应该能够git revert HEAD再次运行它将撤消之前的撤消并为此添加另一个提交.或者你可以做到git reset --hard HEAD~.但是在删除数据时要小心最后一个.

HEAD~表示当前HEAD之前的提交

  • 不,它不会删除数据.它只是移动你的分支指针.之前的提交仍然存在,您可以通过查看`git reflog`(f.ex.)来查看其ID.它将在两个月内进行垃圾收集(默认配置),但是您可以关闭自动垃圾收集,然后*您*生成的每个提交*将永远存在于该存储库中.他们只是通过分支机构无法访问.但是你总是可以使用`git fsck`找到它们,并且我已经发布了一个用于浏览所有使用它的提交的方法. (5认同)