Git 覆盖存储库---强制推送
我有个大问题,我用命令:Git 覆盖存储库---强制推送,git,Git,我有个大问题,我用命令: git push --force origin master git reflog f8037dd HEAD@{11}: commit (initial): doc 现在我有1次提交,如何恢复最后25次提交?Veeryy感谢您的帮助:)我不知道为什么本地repo中只有一个提交,为什么需要强制覆盖远程repo git push--force将覆盖您的远程回购,是一个危险命令,必须小心 是否存在其他分支机构或其他贡献者拥有repo的副本?答案是:永远不要使用推送--for
git push --force origin master
git reflog
f8037dd HEAD@{11}: commit (initial): doc
现在我有1次提交,如何恢复最后25次提交?Veeryy感谢您的帮助:)我不知道为什么本地repo中只有一个提交,为什么需要强制覆盖远程repo
git push--force
将覆盖您的远程回购,是一个危险命令,必须小心
是否存在其他分支机构或其他贡献者拥有repo的副本?答案是:永远不要使用推送--force,除非您有意破坏存储库或其部分 如何从中恢复?如果在
推送-f
之后没有弄乱本地副本,请运行:
git fsck --unreachable --dangling | sed -n -e '/^unreachable commit / { s/unreachable commit \(.*\)/tag_\1 \1/; p} ' | xargs -L1 git tag
寻找新标签-gitk或gitg可能会有所帮助-并从中恢复。祝你好运
顺便说一句,我刚刚注意到你在其他回答中说你有其他本地回购协议。如果您在该repo中有历史记录,为什么不推送提交?文件不是问题。我有,但在github页面上没有历史记录。我还有一个本地repo。@Graku BTW GitHub保留了存储库的reflog,因此很容易将提交主点恢复到上次推之前。我在GUI git中使用了其他repo,这个GUI在提交后都可以看到:D Soo luckyI在我的pc上使用了GUI git中的其他保存repo,这个程序在提交后都可以看到;)请添加有关丢失的提交位置的更多信息-在当前本地分支上,在本地的另一个分支上,在远程的主分支上,等等?如果它们远程在master上,而不是您的机器上,则可能很难或不可能恢复。如果有人可以从代码的另一个克隆再次推送提交,那将是理想的。您可以通过在一个功能分支上进行开发,然后进行合并来避免下次强制推进。我们使用Gerrit来主持项目。REF的更新由服务器端REPO中的reflogs记录。您可以向服务器管理员寻求帮助。