Git误操作急救:30秒拯救你的代码
检查远程仓库备份(如GitHub/GitLab的回收机制)终止当前合并并回到合并前状态。生成反向提交以撤销历史记录。查找丢失的分支提交记录。查找被覆盖前的提交记录。回退到合并前的干净状态。修改最近一次提交内容。
·
Git误操作急救手册大纲
常见误操作场景
- 误删分支:
git branch -D或误操作导致分支丢失 - 误提交:错误的代码或敏感信息被提交到本地或远程仓库
- 误覆盖:
git reset --hard或git push -f导致代码丢失 - 合并冲突处理错误:错误的解决方式导致代码混乱
误删分支恢复方法
使用 git reflog 查找丢失的分支提交记录
通过 git checkout -b <branch-name> <commit-hash> 恢复分支
检查远程仓库备份(如GitHub/GitLab的回收机制)
撤销误提交
git reset --soft HEAD~1 保留更改但撤销提交git commit --amend 修改最近一次提交内容git revert <commit-hash> 生成反向提交以撤销历史记录
恢复误覆盖的代码
git reflog 查找被覆盖前的提交记录git reset --hard <commit-hash> 回退到指定提交
强制推送前使用 git log 确认远程和本地差异
合并冲突回退
git merge --abort 终止当前合并并回到合并前状态git reset --merge 回退到合并前的干净状态
重新合并时使用 git diff 检查冲突点
预防误操作的最佳实践
- 重要分支设置保护(如GitHub的Protected Branches)
- 定期推送代码到远程仓库备份
- 使用
git stash暂存未完成的更改 - 执行高风险操作前备份当前状态(
git tag或临时分支)
工具与扩展
git fsck检查仓库完整性- 图形化工具(如SourceTree、GitKraken)辅助操作
- 脚本自动化备份关键分支
紧急情况处理流程
- 停止进一步操作避免覆盖记录
- 使用
git reflog定位问题点 - 根据场景选择恢复策略
- 验证恢复结果后重新同步远程仓库
更多推荐
所有评论(0)