前回の記事はgit bisectを紹介しました。
iucstscui.hatenablog.com
今回は同じくバグ調査に役立つgit blameです。
git blameは変更された行の情報(コミットのハッシュ値や更新者)を確認するコマンドです。誰が変更したか分かれば変更の意図などを確認できますよね。
git-scm.com
以下のそれぞれの環境で使う方法についてまとめていきます。
サンプルコード
git bisectの記事で使ったコードを使って検証しました。
github.com
CLIで使う
基本的な使い方
git blame <ファイル名>
を実行するとそのファイルの変更一覧が確認できます。
<省略> ^XXXXXXX (iucstscui 2020-05-05 21:59:30 +0900 21) else if (num % 3 == 0) ^XXXXXXX (iucstscui 2020-05-05 21:59:30 +0900 22) { YYYYYYY (iucstscui 2020-05-05 22:05:26 +0900 23) return "Fizzzzzzzzzzzzzzz"; ^XXXXXXX (iucstscui 2020-05-05 21:59:30 +0900 24) } <省略>
左からコミットのハッシュ値、更新者、日付が表示されます。
特定の行を調べる
-L
オプションを使うことで表示数行数を絞り込めます。
行番号指定で絞り込み
以下は10行目から20行目を表示します。
git blame -L 10,20 -- <ファイル名>
以下は10行目から10行を表示します。
git blame -L 10,+10 -- <ファイル名>
正規表現で絞り込み
以下はキーワードの文字がヒットした行付近を表示します。
git blame -L /キーワード/ -- <ファイル名>
過去の情報を見る
以下は指定したリビジョンより過去の情報が表示されます。
git blame <コミットのハッシュ値> -- <ファイル名>
VisualStudioCode+GitLensで使う
VisualStudioCodeのGitLensという拡張機能をインストールするとgit blameと同等の機能がより使いやすくなります。
marketplace.visualstudio.com
選択行にgit blameと同等の情報が表示されます。
選択行の空白の部分にマウスオーバーすると変更差分が表示されます。
上記ポップアップのChangesをクリックすると差分が表示されます。
GitHubで使う
GitHubでもgit blameが使えます。
GitHubでファイルを表示後、右上のBlameボタンをクリックします。
変更箇所にコミットメッセージが表示されます。
上記のコミットメッセージをクリックすると差分が表示されます。
TortoiseGitで使う
TortoiseGitでもgit blameが使えます。
ファイルを右クリックし、Blameを選択します。
ポップアップが表示され、変更箇所にコミットのハッシュ値が表示されます。
まとめ
変更された行の情報が確認できるgit blameを紹介しました。なぜ変更されたのか経緯を調べるために便利なコマンドです。GitLensが使えるVSCodeが一番扱いやすそうでした。