由于本人在开发的时候删除了分支,花费了一天的时间才将代码恢复,故此整理了如果误删git代码后的恢复方法
方法 1:通过本地 reflog 恢复(推荐)
查找分支删除记录
- git reflog | grep -i 'delete.*branch'
复制代码 输出示例:
7a1b2c3 HEAD@{2}: pull origin main: Fast-forward
9d8e7f6 HEAD@{3}: checkout: moving from feature/login to main
123456a HEAD@{4}: commit: Update login logic
e5f43d0 HEAD@{5}: branch: Delete branch feature/payment # ← 删除记录
找到删除前的提交ID(e5f43d0)
- git branch <分支名> <提交ID> # 创建新分支指向旧位置
- git branch feature/payment e5f43d0
复制代码 验证恢复
- git checkout feature/payment
- git log --oneline -3 # 检查历史记录
复制代码 方法 2:恢复远程分支(如果曾经推送过)
查看远程引用
如果发现删除的分支引用(可能存在于其他成员的本地)
找回最后的提交ID(假设为 a1b2c3d)
本地重建分支
- git branch feature/payment a1b2c3d
复制代码 推送到远程
- git push origin feature/payment
复制代码 方法 3:使用 fsck 找回悬空提交(reflog 失效时)
查找孤立(悬空)提交
- git fsck --full --no-reflogs --unreachable --lost-found | grep commit
复制代码 检查可疑提交(会显示在 .git/lost-found 目录)
- cd .git/lost-found/commit
- cat * | less # 查看提交内容
复制代码 找到正确提交后重建分支
- git branch recovered-feature <提交ID>
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |