已删除超一年的Git分支提交能否恢复?实操困境求解决方案
找回已删除Git提交的可行操作建议
检查本地仓库的reflog
执行git reflog show --all,搜索Jira记录里的提交SHA或描述。Git的reflog会追踪本地所有引用的变更记录,哪怕分支被删除,提交可能还留在本地的reflog中。找到目标SHA后,用git checkout <SHA>直接查看提交内容,或者用git branch recovered-branch <SHA>创建恢复分支。联系Bitbucket管理员排查服务器端痕迹
Git服务器的垃圾回收(gc)不会立即清理所有无引用的悬空提交,管理员可以登录仓库服务器执行以下操作:- 运行
git fsck --unreachable,列出所有未被任何分支/标签引用的提交,匹配Jira里的SHA; - 找到目标提交后,用
git branch recovered-branch <SHA>创建分支,再推送到远程仓库供你使用。
- 运行
询问团队成员的本地仓库
找曾经拉取过该WIP分支的同事,让他们在本地执行git reflog或直接搜索目标SHA。如果他们本地还保留着当时的引用记录,提交可能还存在于他们的仓库中,找到后可以推送一个新分支到远程。查看Bitbucket PR的缓存内容
虽然分支已删除,但Bitbucket的Pull Request页面可能缓存了提交的diff快照。打开该PR页面,尝试复制diff内容,手动保存为补丁文件,再用git apply <patch-file>将内容导入到当前工作分支。检查仓库备份
如果团队有定期备份Git仓库的机制(比如镜像仓库、定时快照),从备份中恢复对应的提交或分支。
内容的提问来源于stack exchange,提问作者Steve Crane
相关产品推荐
相关产品推荐

