35

Windows用のgit bashを使用しています:

$ git version
git version 1.8.0.msysgit.0

何ヶ月もの間、すべてが正常に機能しており、徐々に git の動作に慣れてきましたが、突然、プルしようとするたびに git pull が多数の「新しい」ブランチを取得しています。

me@MYPC /d/Projects/MyProject (master)
$ git pull
From github.com:ClientUsername/RepoName
 * [new branch]      branch1 -> origin/branch1
 * [new branch]      branch2 -> origin/branch2
Already up-to-date.

me@MYPC /d/Projects/MyProject (master)
$ git pull
From github.com:ClientUsername/RepoName
 * [new branch]      branch1 -> origin/branch1
 * [new branch]      branch2 -> origin/branch2
Already up-to-date.

設定が間違っていませんか? これは正常な動作ですか?


編集

いくつかの有益なコメントの後、ブランチ ファイルを .git\refs\remotes\origin から削除しました。もう一度引っ張ろうとしたところ、次のようになりました。

me@MyPC /d/Projects/MyProject (master)
$ git pull
From github.com:ClientUsername/RepoName
 * [new branch]      Branch1 -> origin/Branch1
 * [new branch]      Branch2 -> origin/Branch2
 * [new branch]      branch1 -> origin/branch1
 * [new branch]      branch2 -> origin/branch2
Already up-to-date.
me@MyPC /d/Projects/MyProject (master)
$ git pull
From github.com:ClientUsername/RepoName
 * [new branch]      Branch1 -> origin/Branch1
 * [new branch]      Branch2 -> origin/Branch2
Already up-to-date.

唯一の違いはブランチ名のケースですか?

4

7 に答える 7

10

.git/packed_refs にリストされていないブランチを作成し、.git/refs/remotes/origin にあるそのファイルの名前を同じだが異なるケースに変更することで、動作を再現できました。(NTFS ファイルシステム上)。そして、名前を元に戻すことで治ります。

リモート名と一致するフォームに名前を変更できれば、それで問題は解決すると思います。

もっと考えて、編集後の最初のフォームを使用します。

リモートで大文字と小文字が異なるだけで、名前が似ている 2 つのブランチが必要です。

問題は、同じファイルを作成したいからです。類似した名前のブランチのいずれかの名前を変更して、リモートで修正する必要があります。

于 2013-07-02T12:58:31.013 に答える
8

ここでわかるように:

* [new branch]      Branch1 -> origin/Branch1
* [new branch]      Branch2 -> origin/Branch2
* [new branch]      branch1 -> origin/branch1
* [new branch]      branch2 -> origin/branch2

4 つのブランチがあり、それらのペアは同じ名前で大文字と小文字が異なります。ブランチはファイルとして保存され、同じフォルダーに2 つのファイルBranch1を持つことはできないため、これを Windows にミラーリングすることはできません。branch1

これを修正するには、 を実行git push origin :Branch1して、これらのいずれかを削除しBranch2ます。

于 2013-07-02T15:09:22.133 に答える