Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 覆盖存储库---强制推送_Git - Fatal编程技术网

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记录。您可以向服务器管理员寻求帮助。