hacomono TECH BLOG

フィットネスクラブやスクールなどの顧客管理・予約・決済を行う、業界特化型SaaS「hacomono」を提供する会社のテックブログです!

Claude Code が current branch の修正内容を正常に把握できない!そんなときは



どうも、みゅーとんです.
小ネタとして, 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 し直せば一発ではあるんだけどもね.



💁 関連記事