Git误操作急救手册大纲
常见误操作场景
- 误删本地分支或文件
- 误提交(如提交敏感信息或错误内容)
- 误强制推送(覆盖远程分支)
- 误合并或变基导致冲突或历史混乱
数据恢复方法
- 恢复未暂存的修改:
git checkout -- <file> - 恢复已暂存但未提交的修改:
git reset HEAD <file> - 恢复已提交的修改:
git reflog+git reset --hard <commit>
撤销提交操作
- 撤销最近一次提交(保留修改):
git reset HEAD~1 - 彻底删除最近提交(不保留修改):
git reset --hard HEAD~1 - 修改提交信息:
git commit --amend
分支与合并修复
- 恢复误删分支:
git reflog+git checkout -b <branch> <commit> - 撤销合并:
git merge --abort(合并中)或git reset --hard <commit>(已合并) - 撤销变基:
git rebase --abort(变基中)或git reflog回退
远程仓库修复
- 恢复误强制推送的远程分支:
- 本地回退到正确提交:
git reset --hard <commit> - 强制推送正确历史:
git push -f origin <branch>
- 本地回退到正确提交:
预防措施与最佳实践
- 定期备份重要分支(如推送到远程或打标签)
- 使用
git stash临时保存未完成修改 - 谨慎使用
--force或--hard选项 - 通过
git diff和git log确认操作内容
工具与扩展
- 图形化工具(如 GitKraken、SourceTree)辅助回退
- 脚本自动化备份关键操作
附录:常用命令速查表
git reflog:查看操作历史git fsck:检查仓库完整性git cherry-pick:选择性恢复提交