Git误操作急救手册:一键拯救你的代码
·
Git误操作急救手册大纲
常见误操作场景
- 误删本地分支:
git branch -D错误删除未合并分支 - 误删未提交的更改:
git reset --hard或工作区文件丢失 - 误提交敏感信息:密码、密钥等被提交到版本库
- 误强制推送:
git push -f覆盖远程分支历史 - 错误合并或变基:
git merge或git rebase导致冲突或历史混乱
急救方法
恢复误删的本地分支
通过 git reflog 查找误删分支的最后提交哈希,重新创建分支:
git checkout -b <branch_name> <commit_hash>
找回未提交的更改
若工作区文件被覆盖,尝试从暂存区或文件系统缓存恢复:
git fsck --lost-found # 检查悬空对象
移除敏感信息的提交
使用 git filter-branch 或 BFG Repo-Cleaner 工具重写历史:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <file>' --prune-empty --tag-name-filter cat -- --all
撤销强制推送的影响
若团队协作中误覆盖远程分支,协调其他成员基于旧历史重新提交:
git push origin <commit_hash>:<branch_name> --force # 谨慎操作
修复合并或变基错误
终止当前操作并回退到冲突前的状态:
git rebase --abort # 终止变基
git merge --abort # 终止合并
预防措施
- 关键操作前使用
git stash暂存更改 - 推送前检查
git status和git diff - 限制
git push -f权限,启用分支保护规则 - 定期备份重要分支的提交哈希
高级工具推荐
git reflog:查看本地操作历史git fsck:检查仓库完整性BFG Repo-Cleaner:高效清理敏感数据
注意事项
- 操作前备份
.git目录 - 涉及历史重写的操作需团队协同
- 部分操作可能导致数据丢失,谨慎执行
更多推荐
所有评论(0)