リポジトリをクローンした後、誰かが新しいブランチを作成したので、そのブランチで作業を開始したいと思います。マニュアルを読みましたが、とても簡単そうです。不思議なことに、うまくいきません。見つけた投稿はすべて、私が正しいことをしていることを示しています。そのため、私は非難されることを覚悟しています。明らかに何かが間違っているに違いないからです。
正しい行動は
git fetch
git branch -a
* master
remotes/origin/HEAD --> origin/master
remotes/origin/master
git checkout -b dev-gml origin/dev-gml
この時点で問題が発生します。何らかの理由で、git fetch
dev-gml リモート ブランチが表示されません。なぜでしょうか? リポジトリを新しくクローンすると、そこに存在するので、リモート ブランチは確かに存在します。
$ mkdir ../gitest
$ cd ../gitest
$ git clone https://github.com/example/proj.git
Cloning into proj...
remote: Counting objects: 1155, done.
remote: Compressing objects: 100% (383/383), done.
remote: Total 1155 (delta 741), reused 1155 (delta 741)
Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done.
Resolving deltas: 100% (741/741), done.
$ cd projdir
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev-gml
remotes/origin/master
git update
、、、git pull
をあらゆる可能な組み合わせで試してgit fetch --all
みました...git pretty-please
ベストアンサー1
remote.origin.fetch
設定を確認すると問題が分かります
(で始まる行は、$
私が入力したコマンドのbashプロンプトです。他の行は結果の出力です)
$ git config --get remote.origin.fetch
+refs/heads/master:refs/remotes/origin/master
ご覧のとおり、私の場合、リモートはマスター ブランチのみを具体的に取得するように設定されていました。結果を確認するための 2 番目のコマンドを含め、以下のように修正しました。
$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
$ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*
*
もちろん、ワイルドカードはそのパスの下にあるすべてのものを意味します。
残念ながら私はこのコメントすでに徹底的に調べて、試行錯誤して答えを見つけた後です。