我重置了git repo的主分支,如何恢复该分支?

kknvjkwl  于 2023-05-15  发布在  Git
关注(0)|答案(2)|浏览(236)

在我的仓库中有一个名为“main”的分支。它之前有近70个提交。在我的本地系统中,我修改了代码并提交了一个提交。但当我按下按钮时,我发出了这样的指令

git checkout -b main
git push -f origin main

所以在那之后,在我的“主”分支中,所有的70个提交都丢失了,取而代之的是只有一个最新的提交,所以我认为所有的70个提交都被删除了。
我尝试了git reflog命令,但它只显示了最新提交的1个SHA,而没有显示所有70个提交的SHA。
所以现在我想把我的“main”分支恢复到它拥有所有70个提交的那一点,或者简单地说,我想把我的“main”分支恢复到包含所有70个提交的那一点

bwntbbo3

bwntbbo31#

我刚刚联系了github支持,他们为我提供了一个我的github repo树链接,在那个链接中有一个分支被我丢失了,所以我只是从源分支创建了一个新的分支,因为SHA来自支持提供的链接,所以我能够复制一个新的分支,其中包括我以前所有的提交。非常感谢GitHub的支持。

laik7k3q

laik7k3q2#

看起来你强制推送了你的本地main分支,它只用最新的提交替换了远程main分支。不幸的是,这意味着远程main分支上的前70个提交被删除,并且无法通过Git恢复。
但是,如果你有一个包含70次提交的仓库的本地副本,你可以通过执行以下操作将远程main分支恢复到以前的状态:
1.查看main分支的本地副本,它有70个提交:

git checkout main

1.创建一个新的main分支,它指向与本地main分支相同的提交:

git branch new-main
git checkout new-main

1.强制推送新的main分支以替换远程main分支:

git push -f origin new-main:main

这将在远程上创建一个新的main分支,其中包含所有70个提交。请注意,任何其他克隆或提取了远程main分支的贡献者也需要执行这些步骤来恢复其main分支。
如果你没有这70个提交的仓库的本地副本,那么很不幸,你无法通过Git恢复这些丢失的提交。

相关问题