Git push无法推动原点 - 没有这样的参考

时间:2013-02-07 17:05:02

标签: git git-flow hotfix

我无法将使用hotfix创建的git-flow分支的提交推送到远程存储库。

这是错误:

$ git push origin hotfix/MyHotfix
Counting objects:
... etc
To {my remote repo}
 ! [remote rejected] hotfix/MyHotfix -> hotfix/MyHotfix (no such ref)
error: failed to push some refs to {my remote repo}

我使用标准语法创建了hotfix

git flow hotfix start MyHotfix

此分支已出现在origin上,我可以通过git branch -a查看。 我还检查了分支机构是否仍然存在于远程服务器上,因为它在我运行git remote show origin时显示。

有没有人在gitgit-flow之前遇到过此问题并找到解决方案?

注意 - 我尝试过的事情:

  • 重新克隆远程仓库 - >同样的错误
  • 删除本地分支 - >同样的错误
  • 删除远程分支 - >我可以推送'new'分支,但是当他试图推送提交时(在git remote prune origin之后)
  • ,我的同事本地仓库会出现同样的错误
  • 强制推动 - >同样的错误
  • 上游推送 - >同样的错误
  • 检查参考 - >我的提交父ID与服务器匹配

更新

git ls-remote origingit show-ref显示本地和远程修补程序分支的不同引用,但这是因为我在本地有1个额外提交,而父提交的引用与origin上的引用匹配

2 个答案:

答案 0 :(得分:3)

看起来它实际上是服务器存储库的问题。 在服务器上的裸存储库上运行这些步骤可以清除错误:

git fsck --full
git prune
git gc

注意:根据手册页git prune不是必需的,因为git gc会调用它,但我正在尝试所有内容。

答案 1 :(得分:1)

考虑issue 92,我认为不会发布修补程序分支 这是一个尚待处理的功能请求。

  

虽然releasefeature分支都可以发布(git flow release/feature publish),但修补程序分支却不能发布。

因此,推文本身可能无法与(已经被拒绝的)发布操作兼容。