(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Git】git fetchをするも fatal: couldn't find remote ref xx と出る事象

スポンサーリンク

事象

git pull後に以下コマンドでgit fetchでリモートリポジトリの情報取得に行くも

$ git fetch --recurse-submodules=yes --depth=1 origin --force master

以下のエラーとなる。

fatal: couldn't find remote ref master
環境情報
$ git --version
git version 2.30.0

原因/解決策

存在しないブランチに対してfetchコマンドをしかけている。

以下コマンドでリポジトリのブランチ名を確認し

$ git branch -a
* master
  remotes/origin/HEAD -> origin/main
  remotes/origin/br-latest-app
  remotes/origin/main

正しいリポジトリ名でfetchすると

$ git fetch --recurse-submodules=yes --depth=1 origin --update-head-ok --force main
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
From https://github.com/xx/xx
 * branch            main    -> FETCH_HEAD

正しい情報が取得できる。

以下、補足です。

補足

git fetchとは「Download objects and refs from another repository」という名の通りで指定したブランチから最新情報を持ってくる処理ですが、ブランチ名が誤っている場合はエラーメッセージの「ref xx」として確認できます。

よってfetchが失敗する場合はそもそもリモートリポジトリが正しいのかをgit remoteで確認した後

$ git remote -v
origin  https://github.com/xx/xx (fetch)
origin  https://github.com/xx/xx (push)

git branchでブランチ名を確認するとエラーの原因究明につながるケースがあります。

以上、エラー解消の参考になれば幸いです。