恢复几个月前删除的 Git 分支
Recover a Git branch that was deleted months ago
几个月前我删除了一个分支,认为我的项目不再需要它。事实证明,现在,几个月后,它实际上又被需要了。不幸的是我在本地没有...
有什么方法可以恢复吗?
编辑:我在删除分支后克隆了 repo,所以我相信 reflog 帮不了我。
我也试过 "Resurrect" http://repo.or.cz/w/git.git/blob/HEAD:/contrib/git-resurrect.sh,但没有显示分支。
编辑#2:这些都是很好的答案,但我觉得我搞砸了。自从我重新克隆以来,reflog 对我没有任何帮助,它是一个独立的分支,它不在远程服务器上,本地也没有其他人拥有它。
我想我会重写它...
是的,您可以在 git 中恢复已删除的分支。
首先,运行 git reflog
并在已删除分支.
的顶端找到提交的 SHA1
然后 git checkout -b <branchname> <sha>
重新创建分支及其历史记录。
如果出现以下情况之一,您可以恢复分支:
(具体说明是否有,我会相应地更新答案)
- 如果您已将分支合并到其他分支
- 您已将其存储在本地存储库中(这意味着在此期间没有 gc 运行)
- 你在远程服务器上有它
- 其他人在他的 repo 中有它
- 您知道要查找哪个文件,这将使我能够解释如何搜索 git blob)
同时看看这里的更多想法:
您可以尝试 git reflog
并找到您已删除的分支的最新提交哈希吗?
获得提交哈希后,执行 git reset --hard <commit>
.
这会将 HEAD 恢复到分支上的最新提交。
再次重新创建分支并签出到该新分支 git checkout -b <branchname>
然后推分支,git push origin <branchname>
我在 https://confluence.atlassian.com/stashkb/how-to-restore-a-deleted-branch-744723130.html
的 Atlassian 知识库中找到了这个
希望对您有所帮助
几个月前我删除了一个分支,认为我的项目不再需要它。事实证明,现在,几个月后,它实际上又被需要了。不幸的是我在本地没有...
有什么方法可以恢复吗?
编辑:我在删除分支后克隆了 repo,所以我相信 reflog 帮不了我。
我也试过 "Resurrect" http://repo.or.cz/w/git.git/blob/HEAD:/contrib/git-resurrect.sh,但没有显示分支。
编辑#2:这些都是很好的答案,但我觉得我搞砸了。自从我重新克隆以来,reflog 对我没有任何帮助,它是一个独立的分支,它不在远程服务器上,本地也没有其他人拥有它。
我想我会重写它...
是的,您可以在 git 中恢复已删除的分支。
首先,运行 git reflog
并在已删除分支.
然后 git checkout -b <branchname> <sha>
重新创建分支及其历史记录。
如果出现以下情况之一,您可以恢复分支:
(具体说明是否有,我会相应地更新答案)
- 如果您已将分支合并到其他分支
- 您已将其存储在本地存储库中(这意味着在此期间没有 gc 运行)
- 你在远程服务器上有它
- 其他人在他的 repo 中有它
- 您知道要查找哪个文件,这将使我能够解释如何搜索 git blob)
同时看看这里的更多想法:
您可以尝试 git reflog
并找到您已删除的分支的最新提交哈希吗?
获得提交哈希后,执行 git reset --hard <commit>
.
这会将 HEAD 恢复到分支上的最新提交。
再次重新创建分支并签出到该新分支 git checkout -b <branchname>
然后推分支,git push origin <branchname>
我在 https://confluence.atlassian.com/stashkb/how-to-restore-a-deleted-branch-744723130.html
的 Atlassian 知识库中找到了这个希望对您有所帮助