Reference Git reference

git reset 参考

git reset 用于移动当前分支的 HEAD,并按模式影响暂存区和工作区。它适合处理本地未推送历史;已推送的提交通常优先考虑 git revert。

语法

bash
git reset [--soft|--mixed|--hard] <commit>

常用模式

模式 HEAD 暂存区 工作区 常见用途
--soft 移动 保留 保留 撤销 commit,保留 staged
--mixed 移动 重置 保留 撤销 commit 和暂存,默认模式
--hard 移动 重置 重置 丢弃本地改动,风险最高

示例

撤销最后一次本地提交,但保留改动:

bash
git reset --soft HEAD~1

取消暂存文件:

bash
git reset HEAD file.md

回到某个提交并丢弃工作区改动:

bash
git reset --hard <commit>

常见错误

  • 对已推送共享分支使用 reset 后强推,会改写别人依赖的历史。
  • 不确认工作区状态就使用 --hard,可能丢失未提交改动。
  • 把 reset 和 revert 混用:reset 改历史,revert 新增一个反向提交。

相关内容