問題
これは GitExtensions のバグのように聞こえますが、特定の情報が見つかりませんでした。複数のブランチを持つ裸のリポジトリがある場合に問題が発生すると思います。次にプッシュすると、無視を選択すると混乱したブランチが見つかるという警告が表示されます。または、押し方によっては、警告すら表示されず、どこでも破滅です。
と という 2 つのローカル ブランチがあるとmaster
しanother
ます。そして、origin
プッシュ用のデフォルトセット。origin/master
通常のプッシュの後、 andも見つかりますorigin/another
。それだけです。
しかし、運命のプッシュの後、重複origin/master
とorigin/another
プラスが見つかりorigin/refs/heads/master
、それも重複しています。余分なブランチごとに。また、すべてのブランチなどをプッシュしているわけでも、複数のブランチ機能を使用しているわけでもありません。
実際、これが起こった後は、単純push
にエラーなしではいられません! (はい、もちろんWindowsを使用しています)
Pushing to \\\server\git\repo error: dst refspec refs/heads/another matches more than one. error: failed to push some refs to '\\\server\git\repo'
でブランチをリストすると、問題が明らかになりgit branch -r
ます。
それを修正するには
次のようにする必要があります。
- のフォルダを手動で削除します。を使用するだけで機能する場合もあれば、より堅牢で直接フォルダーに移動する必要がある場合もあります。これは難しいステップであり、主な問題はそれらが機能しないときに発生します...
refs/heads
origin
git push origin :<branchName>
git fetch -p
、元の変更をローカルにもたらすため。- 最終的にすべてのクライアントを調べて使用し
git remote update
ます。必要に応じて、同じブランチを 1 つずつ、または任意の方法で削除します。たとえば、堅牢かつ直接フォルダーに再度移動します。この手順には、まだ診断できない別の問題がある場合があります。
周波数
私たちにとって、これは明言された事実です。正確な原因を確認するために多くの実験を行っていませんが、このレポを使用する 5 台のマシンのいずれかで発生し、bare
.
そして、それが起こるたびに、私は走って、それを修正する方法を見つけなければなりません. 今回は、ウェブ上で十分に具体的なものを見つけることができなかったので、それを文書化することにしました.
どうして
ここでの問題は、なぜこれが起こるのか、どうすればそれを防ぐことができるのかということです。GitExtensionsの障害のみですか? 私たちの側では、GitExtensions のこの特定のシナリオでのみ発生します。