Git误操作急救手册大纲
常见误操作场景
- 误删分支或提交:
git branch -D或git reset --hard导致代码丢失 - 误提交敏感信息:密码、密钥等被提交到仓库
- 冲突处理失误:合并或变基时错误解决冲突
- 错误覆盖远程分支:
git push --force导致团队协作问题
数据恢复方法
- 恢复丢失的提交:通过
git reflog查找提交哈希并恢复 - 找回已删除分支:利用
git fsck --lost-found扫描悬空对象 - 撤销本地修改:
git checkout -- <file>或git stash丢弃未提交更改
撤销提交与重写历史
- 撤销最近提交:
git reset --soft HEAD~1保留更改,--hard彻底丢弃 - 修改提交信息:
git commit --amend重写最后一次提交 - 交互式变基:
git rebase -i合并、拆分或删除历史提交
远程仓库修复
- 强制推送回滚:
git push origin <branch> --force(慎用) - 恢复被覆盖分支:从其他成员的本地仓库或备份中拉取原分支
- 删除远程敏感数据:使用
git filter-repo彻底清理历史记录
预防措施与最佳实践
- 定期备份:推送代码到远程仓库或使用
git bundle打包本地仓库 - 别名与安全操作:配置
git config别名避免高危命令(如git config --global alias.unstage 'reset HEAD --') - 代码审查与钩子:利用
pre-commit钩子检查敏感信息或语法错误
工具与扩展
- GUI工具辅助:GitKraken、SourceTree可视化操作历史
- 第三方工具:
git-dammit快速撤销常见错误 - 日志分析:
git log --graph --oneline简化历史查看
紧急情况处理流程
- 立即停止后续操作,避免覆盖更多数据
- 通过
git reflog定位错误操作点 - 根据场景选择恢复命令,优先本地测试
- 通知团队成员协同修复远程问题