Git误操作急救手册大纲

常见误操作场景分类
  • 提交相关:误提交、提交信息错误、漏提交文件
  • 分支相关:误删分支、错误合并、强制推送覆盖
  • 文件操作:误删未提交文件、误git addgit rm
  • 历史修改:需要撤销某次提交、修改历史提交记录
撤销本地未推送的提交

git reset --soft|--mixed|--hard <commit_hash>

  • --soft保留改动到暂存区
  • --mixed(默认)保留改动到工作区
  • --hard彻底丢弃改动
修复已推送的提交

git revert <commit_hash>生成反向提交
git push同步到远程,避免直接修改历史

恢复误删的分支

通过git reflog查找分支最后提交的哈希
git branch <branch_name> <commit_hash>重建分支

撤销工作区文件修改

git checkout -- <file_path>丢弃未暂存的修改
git restore <file_path>(Git 2.23+替代方案)

从暂存区撤回文件

git reset HEAD <file_path>取消git add操作

找回误删的未提交文件

git fsck --lost-found检查悬空对象

.git/lost-found目录中手动恢复文件

修改历史提交信息

git rebase -i <base_commit>交互式变基

将目标提交行的pick改为reword保存后编辑

强制推送后的团队协作修复

通知所有成员同步最新历史:
git fetch --all
git reset --hard origin/<branch_name>

预防误操作的最佳实践
  • 重要分支设置保护规则
  • 频繁提交前使用git diff检查变更
  • 定期备份关键分支或标签
  • 使用git stash暂存未完成的工作
高级工具与技巧
  • git cherry-pick选择性应用提交
  • git bisect定位问题提交
  • 脚本自动化备份关键操作日志

注:涉及历史重写的操作需谨慎,尤其在协作仓库中应优先使用revert而非reset

相关推荐
老酒馆的馆长大人21 分钟前
git入门级教程
git
kyriewen21 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
A_Lonely_Cat3 天前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
和你看星星5 天前
Git rerere:让重复冲突只解决一次
git
嘻嘻仙人9 天前
Ubuntu中 git上传自己的项目和二次上传一般流程
git·github
Patrick_Wilson9 天前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员
沉浸学习的匿名网友9 天前
什么是 .gitignore?为什么每个 Git 项目几乎都离不开它?
前端·git
深海鱼在掘金10 天前
Git 完全指南 —— 第3章:理解工作区、暂存区、版本库三个核心
git
江华森10 天前
Git 基础筑基:从原理到团队协作的全栈实战
git
JakeJiang10 天前
Git 必备命令指南:从日常高频到项目开发实战
git