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

誰かが以前にこれに遭遇したgitgit-flow、解決策を見つけましたか?

注 - 私が試したこと:

  • リモートリポジトリの再クローン - >同じエラー
  • ローカルブランチの削除 - >同じエラー
  • リモート ブランチの削除 -> 「新しい」ブランチをプッシュできますが、同僚がコミットをプッシュしようとすると、ローカル リポジトリで同じエラーが発生します (後git remote prune origin) 。
  • 強制プッシュ -> 同じエラー
  • アップストリーム プッシュ -> 同じエラー
  • 参照を確認中 -> コミットの親 ID がサーバーと一致

アップデート:

git ls-remote originローカルとリモートのホットフィックス ブランチで異なる refをgit show-ref表示しますが、これはローカルに 1 つの余分なコミットがあり、親コミットの ref が の ref と一致するためoriginです。

4

2 に答える 2

3

実際にはサーバーリポジトリに問題があったようです。サーバー上のベアリポジトリでこれらの手順を実行すると、エラーが解消されました。

git fsck --full
git prune
git gc

注:manページによると、それを呼び出すgit pruneので必要ありませんgit gcが、私はすべてを試していました。

于 2013-02-08T17:02:32.317 に答える
1

問題 92を考慮すると、ホットフィックス ブランチが公開されることは意図されていないと思います。
これは保留中の機能リクエストです。

releaseおよびfeatureブランチはすべて公開できますが ( ) git flow release/feature publish、ホットフィックス ブランチは公開できません。

そのため、プッシュ自体が (既に拒否されている) パブリッシュ操作に準拠することが妨げられている可能性があります。

于 2013-02-07T20:21:36.023 に答える