Git急救指南:误操作全攻略

Git误操作急救手册大纲

常见误操作场景分类
  • 误删文件或分支
  • 误提交敏感信息(密码、密钥等)
  • 误覆盖或丢失本地修改
  • 误执行git resetgit rebase导致历史混乱
误删文件或分支恢复方法

使用git reflog查找丢失的提交记录
通过git checkout <commit-hash> -- <file>恢复误删文件
使用git branch <branch-name> <commit-hash>重建误删分支

撤销敏感信息提交

利用git filter-branchBFG Repo-Cleaner清理历史记录
强制推送覆盖远程仓库:git push origin --force
后续建议:使用.gitignoregit-secrets预防敏感信息泄露

恢复未提交的本地修改

通过git stash找回未提交的临时修改
检查git fsck是否有悬空对象(dangling blobs)
使用编辑器或IDE的本地历史功能(如IntelliJ IDEA)

修复git resetrebase导致的混乱

reflog中找到操作前的HEAD位置
git reset --hard <commit-hash>回退到正确状态
合并冲突时使用git rebase --abort中断并重置

预防误操作的最佳实践

关键操作前使用git tag标记重要版本
定期推送至远程仓库备份
复杂操作前创建临时分支作为“沙盒”测试

高级工具与技巧

git fsck检测仓库完整性
git cherry-pick选择性恢复提交
脚本自动化检查危险操作(如匹配--forcereset --hard

紧急情况处理流程

优先停止后续操作避免覆盖数据
根据错误类型选择恢复策略
验证恢复结果后重新同步远程仓库

附录:常用命令速查表
  • 恢复文件:git restore <file>
  • 撤销提交:git revert <commit-hash>
  • 找回分支:git reflog | grep <branch-name>