5

我无法将使用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.

有没有人遇到过这个问题git或者git-flow找到了解决方案?

注意 - 我尝试过的事情:

  • 重新克隆远程仓库->同样的错误
  • 删除本地分支->同样的错误
  • 删除远程分支->我可以推送“新”分支,但是当我的同事尝试推送提交时,在本地仓库中会出现相同的错误(之后git remote prune origin
  • 强制推送->同样的错误
  • 上游推送->同样的错误
  • 检查 refs -> 我的提交父 id 与服务器匹配

更新:

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

4

2 回答 2

3

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

git fsck --full
git prune
git gc

注意:根据手册页git prune不需要,因为git gc调用它,但我正在尝试一切。

于 2013-02-08T17:02:32.317 回答
1

考虑到issue 92,我不认为修补程序分支是要发布的。
这是一个仍在等待中的功能请求。

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

因此,推送本身可能已被阻止符合(已被拒绝)发布操作。

于 2013-02-07T20:21:36.023 回答