我不小心在存储库中的错误分支上运行了该命令-是否可以撤消此更改?
Answers:
git revert
只是创建一个新的提交-您可以使用“删除”它git reset --hard HEAD^
(但是要更加小心!)
git reset --hard HEAD^
因为它会删除所有未提交的更改。
git stash
,则git reset --hard HEAD^
可以“保存”未提交的更改。后git reset --hard HEAD^
做了git stash pop
重新加载未提交更改到当前分支。
该命令git revert
仅创建一个撤消另一个提交的提交。您应该能够git revert HEAD
再次运行,它将撤消之前的撤消并为此添加另一个提交。或者你可以做git reset --hard HEAD~
。但是最后一点要小心,因为它会擦除数据。
HEAD~
表示在当前HEAD之前的提交
git reflog
(f.ex.)来查看其ID 。它会在两个月内被垃圾收集(默认配置),但是您可以关闭自动垃圾收集,然后您所做的每个提交都将永久存在于该存储库中。它们只是无法通过分支到达。但是您始终可以使用找到它们git fsck
,并且我发布了一个食谱来浏览所有使用它的提交。
如果你已经这样做了足够的先见之明:revert --no-commit master
,可以中止与:git revert --abort
按照git status
建议:
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
You are currently reverting commit dcc7c46.
(all conflicts fixed: run "git revert --continue")
(use "git revert --abort" to cancel the revert operation)