例子
# 你现在在:
4b0eb60a HEAD -> feat/iterate
# 希望回到:
41170b91 Replace WORKFLOW.md placeholder
直接执行:
git reset --hard 41170b91
效果是:
4b0eb60a ← 被当前分支丢弃
↓
41170b91 ← HEAD -> feat/iterate
如果想先留个保险,可以先:
git branch backup-before-reset
git reset --hard 41170b91
注意:--hard 会同时丢掉未提交的工作区修改。
如果你想回滚 commit,但保留目前代码修改:
git reset --soft 41170b91
区别:
--hard 回到该 commit,代码修改也全部丢弃
--soft 回到该 commit,但之后的修改保留在暂存区
--mixed 回到该 commit,修改保留在工作区但取消暂存
--soft常用于
撤销 commit,但不撤销代码,甚至保持 git add 状态。
比如你刚刚 commit message 写错了,或者希望把几个 commit 重新整理。