颛孙中 发表于 昨天 10:27

git 误删分支后恢复方法

由于本人在开发的时候删除了分支,花费了一天的时间才将代码恢复,故此整理了如果误删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:恢复远程分支(如果曾经推送过)

查看远程引用

git ls-remote origin如果发现删除的分支引用(可能存在于其他成员的本地)

找回最后的提交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>

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: git 误删分支后恢复方法