テック技報最新号へ →
コード

Git: ファイル名を変えたあとの履歴は git log --follow で追う

git log -- 新しい名前 はリネーム後のコミットしか出さない。git log --follow -- ファイル名 なら、名前を変える前の履歴までさかのぼって表示する。

@tane_log · 投稿 2026-11-06
#git#history

使う場面

  • utils.js を utils.ts に変えた・ディレクトリを移動したあと、そのファイルの昔の変更理由を調べたいとき
  • レビューや調査で「このファイルはいつ誰が作ったか」を知りたいとき

やり方

sh
# リネーム前も含めた履歴
git log --follow -- src/lib/date.ts

# 差分付き(リネームの前後で中身がどう変わったかも見える)
git log --follow -p -- src/lib/date.ts

# 名前の変遷だけ確認
git log --follow --name-status --oneline -- src/lib/date.ts
  • 毎回付けたくなければ git config --global log.follow true(ファイルを 1 つだけ指定したとき自動で --follow になる)。

注意点

  • --follow はファイル 1 つにしか使えない。ディレクトリや複数パスには効かない。
  • リネームは「中身が似ているか」で推測している。改名と同時に大きく書き換えると、別ファイル扱いになって辿れないことがある。改名だけのコミットを分けておくと追いやすい。
  • git blame は既定でリネームを辿る。行単位の由来なら blame、ファイル全体の変遷なら log --follow。

出典

X の元の投稿を開く