#はじめに
私が午前中を溶かした、git fetch
でハマった話を忘備録を兼ねて記載する。
#発生した事象
git fetch
しても新規作成したブランチ名が表示されない事象に遭遇した。
具体的には、以下のように作業を進めていた。
①リモートリポジトリをローカルにクローン
②リモートリポジトリで新規ブランチを作成
③クローン済みのローカルリポジトリに②で作成したブランチをチェックアウト
この際、③にてブランチのチェックアウトをしようと、
git fetch
でリモートブランチの情報取得後、
git branch -a
でリモートブランチを確認したが、新規作成したリモートブランチ名が表示されない。
そのため、チェックアウトも出来ずハマってしまった。
#原因
./git/config
内のfetch対象の指定が、以下のようにブランチ毎になっていた。
[remote "origin"]
url = https://hogehohehoge
fetch = +refs/heads/hoge:refs/remotes/origin/hoge
fetch = +refs/heads/hoge2:refs/remotes/origin/hoge2
#解決方法
以下のように、fetch対象のbranchをリモート全体に指定する事で、
クローン後に新規作成した時にも情報を取得してくれるようになった。
[remote "origin"]
url = https://hogehohehoge
fetch = +refs/heads/*:refs/remotes/origin/*
#参考文献
こちらのページに大変助けられました。ありがとうございます…!
『Git』10.5 Gitの内側 - Refspec
https://git-scm.com/book/ja/v2/Git%E3%81%AE%E5%86%85%E5%81%B4-Refspec