我注意到在使用命令git push -f --mirror
重命名我的本地分支后,它也在远程仓库上成功重命名,但所有其他分支都消失了。当我在BitBucket中查看远程仓库的分支时刷新我们的仓库时,它是巧合的(它们已经消失了,也许有人删除了它们)或者这个命令做了一些意想不到的事情,我还没有意识到< / p>
这个命令会做这样的事情,这意味着什么?发生了什么事?
答案 0 :(得分:1)
这似乎是--mirror
选项的记录行为:
--mirror
不是将每个引用命名为push,而是指定所有引用 refs /(包括但不限于refs / heads /, refs / remotes /,refs / tags /)镜像到遥控器 库。新创建的本地引用将被推送到远程 结束,本地更新的refs将在远程端强制更新, 和已删除的参考号将从远程端删除。
删除的引用意味着&#34;不在本地存储库中的引用&#34;。
答案 1 :(得分:0)
对于偶然执行git push -f --mirror
并删除许多分支之后和我一样绝望的人:
尝试掌握所有分支的最新ref / commit-hash。就我而言,我收到每个删除的分支的电子邮件,其中包含最新的参考。
然后对每个删除的分支执行git checkout -b <branch-name> <ref>
,以在本地恢复它们。这样一来,这些更改就会丢失,而这些更改是在您上一次git fetch
之后发生的
在本地恢复所有分支之后,您可以再次git push origin <branch-name>
将其恢复到远程分支。