どうも、みゅーとんです.
小ネタとして, Claude Code の応答に問題が起きたので調べてみた備忘録をまとめておきます.
何が起きたか?
朝出勤して、続きの開発をやるかー!という意気込みで Claude Code を起動し, “今いるブランチの修正内容を一旦把握してください” と指示すると・・

なんか突然 2023年にあったっぽいブランチと HEAD を比較し始めました!どうしたんだ・・
この挙動は同じ指示をすると毎回発生しました. 再現性があるなら原因があるはずなので, 軽く調べてみました.
原因
3 行でまとめます.
- 当時は default branch の名前を定期的に変更しており, v3.0/20231121 もその一つ.
- default branch が何であるかは自動的に更新されず, git clone した時点の情報が残り続ける.
- git pull / git fetch ではデフォルトブランチがどれであるかの情報を更新しない.
長期で開発しているローカル環境でのみ起こり得る問題でした.
私のローカル環境, 2023 年からあったんだなぁ・・
対処方法
以下のコマンドで, 今デフォルトブランチが何と認識されているかを確認できます.
% git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/v3.0/20231121
その更新は以下のコマンドです.
% <u>git remote set-head origin -a origin/HEAD set to main</u>
実行後再度確認してみると, ちゃんと反映されていることがわかります
% git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
Claude Code を立ち上げ直して, 同じ質問をしてみると・・?

ちゃんと main から HEAD までを比較してくれました. よかった
まとめ
長くメンテしているローカル環境だと陥る可能性がある問題でした.
AI がどんどん便利になってきている背景で, こういう設定を怠ってしまうと真価を発揮できないので, こういう古い設定を見つけてどんどん直していきたいですね.
まぁ, git clone し直せば一発ではあるんだけどもね.
💁 関連記事