10

「git pull」を実行するたびに、大文字と小文字が交互に「再作成」される git ブランチがあります。ブランチ名が 'a' (または私が知っているすべての場合は 'A') であると仮定すると、1 つの 'git pull' で次の行が生成されます。

* [new branch]      a       -> origin/a

そして、次の 'git pull' は以下を生成します:

* [new branch]      A       -> origin/A

これは止まらない。他の誰かがブランチを作成したため、ブランチがどのように作成されたのか (またはその目的) がわかりません。

このブランチを飼いならして、これをやめさせるにはどうすればよいですか?

4

3 に答える 3

7

コメントで述べたように、 と の両方がリモートrefs/heads/Arefs/heads/a存在します。つまり、そこには 2 つの異なるブランチが存在します。(Windows 以外のほとんどのファイルシステムと同様に、Git 自体は大文字と小文字を区別します。)

ただし、Windows を使用している場合は、おそらくこの問題の説明になります。参照は、参照ごとに 1 つの個別のファイルとして作成されます。Git はリモートで両方を認識しますが、ローカルで更新しようとすると、一方しか存在しないため、もう一方が常に作成されます。2 つの操作の内部順序は、新しく作成された操作が別の操作を上書きし、交互に行われるようにする必要があります。

参照が同じコミットを指している場合、解決策はリモートでそれらの1つを削除することです:

git push origin :refs/heads/A
于 2011-05-16T19:11:30.030 に答える
1

この問題が発生しました。私の場合、ブランチ名の 1 つが他のブランチ名の直系にあったため、値が追加されていないため、リモートから古いブランチを削除しました。削除するブランチが「a」であると仮定すると、このコマンドはそれをリモート (「origin」という名前) から削除します。

git push origin :a

数回のフェッチで問題は解決しました (他の誰かが再度プッシュするまで...)

于 2011-10-04T19:30:11.037 に答える
1

いつも[新しいブランチ]を取得しているため、ローカルで origin/a と origin/A が削除されているようです。誰かまたは何かがこれらの参照を削除している場合、リモートからフェッチ (またはプル) するたびにこれらのブランチを取得します。リポジトリの再クローンを試みましたか? この問題を抱えているのはあなただけですか?

于 2011-05-16T06:05:55.860 に答える