【发布时间】:2011-06-16 09:45:16
【问题描述】:
我有一个在多个开发人员之间共享的 git 存储库的问题。一个分支似乎已经丢失(有点),当我尝试使用这个分支推送到远程仓库时,我收到以下消息......
To git@hades:bbis.git
* [new branch] dompdf0.52 -> dompdf0.52
! [rejected] live -> live (non-fast-forward)
error: failed to push some refs to 'git@hades:bbis.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
repo 上有 3 个分支:
- dompdf0.52 是我升级 dompdf 的临时分支(没关系)
- 主人
- live(这是有问题的分支)
我是唯一使用 live 分支(用于部署到 live 服务器)的开发人员,我直接在这个分支中做了一些工作(我知道这不是一个好主意,但这是一个错误)并在本地提交。尝试推送时出现此错误。
其他开发人员看不到 live 分支或 dompdf0.5.2 分支(我创建了这两个分支,但已将它们推送到远程仓库 - 它们甚至在 gitweb 界面中显示为 HEADS)。即使开发人员执行git pull --all,它仍然不会拉下这些分支。
另一个奇怪的现象是,在 gitweb 上查看日志时,它只显示 master,但在查看 live 分支的短日志时,它在 master 所在的同一点显示 live master 短日志。
我对这里发生的事情有点困惑,从我可以看到live 分支在远程仓库中但没有显示在主仓库日志中。
有人有什么想法吗?如果您需要来自gitk的任何图片,请告诉我
编辑:只是想我会提到,我试图通过执行 git fetch 和 git pull 来解决错误消息,但无济于事。我唯一没有尝试过的是git push --force,因为我不想失去我的历史。
编辑 2:运行 sehe 提供的脚本后,我收到以下信息:
fatal: ref ed2cacdacad22c75ca765cfc996304c8c7c8a654 is not a symbolic ref
fatal: ref 98c37bd8a9ef2fc16e882c17b4c04f417ae7b2b2 is not a symbolic ref
【问题讨论】:
标签: git branch git-branch