在我的仓库中有一个名为“main”的分支。它之前有近70个提交。在我的本地系统中,我修改了代码并提交了一个提交。但当我按下按钮时,我发出了这样的指令
git checkout -b main
git push -f origin main
所以在那之后,在我的“主”分支中,所有的70个提交都丢失了,取而代之的是只有一个最新的提交,所以我认为所有的70个提交都被删除了。
我尝试了git reflog
命令,但它只显示了最新提交的1个SHA,而没有显示所有70个提交的SHA。
所以现在我想把我的“main”分支恢复到它拥有所有70个提交的那一点,或者简单地说,我想把我的“main”分支恢复到包含所有70个提交的那一点
2条答案
按热度按时间bwntbbo31#
我刚刚联系了github支持,他们为我提供了一个我的github repo树链接,在那个链接中有一个分支被我丢失了,所以我只是从源分支创建了一个新的分支,因为SHA来自支持提供的链接,所以我能够复制一个新的分支,其中包括我以前所有的提交。非常感谢GitHub的支持。
laik7k3q2#
看起来你强制推送了你的本地
main
分支,它只用最新的提交替换了远程main
分支。不幸的是,这意味着远程main
分支上的前70个提交被删除,并且无法通过Git恢复。但是,如果你有一个包含70次提交的仓库的本地副本,你可以通过执行以下操作将远程
main
分支恢复到以前的状态:1.查看
main
分支的本地副本,它有70个提交:1.创建一个新的
main
分支,它指向与本地main
分支相同的提交:1.强制推送新的
main
分支以替换远程main
分支:这将在远程上创建一个新的
main
分支,其中包含所有70个提交。请注意,任何其他克隆或提取了远程main
分支的贡献者也需要执行这些步骤来恢复其main
分支。如果你没有这70个提交的仓库的本地副本,那么很不幸,你无法通过Git恢复这些丢失的提交。