ハロウィンのかぼちゃのイラスト

GitLens で特定のコミットを除外する

GitLens の使用時に、機械的にフォーマットされたコミットがあるとコードの変更履歴を確認する際に邪魔になってしまいます。この記事では、GitLens で特定のコミットを除外する方法を紹介します。

TL;DR

  1. .git-blame-ignore-revs という名前のファイルを作成して、除外するコミットのハッシュを記述する
.git-blame-ignore-revs
# 複数のコミットを指定する場合は改行で区切る
<sha1>
<sha1>
  1. GitLens のユーザー設定である gitlens.advanced.blame.customArguments["--ignore-revs-file", ".git-blame-ignore-revs"] を追加する
.vscode/settings.json
{
  "gitlens.advanced.blame.customArguments": [
    "--ignore-revs-file", ".git-blame-ignore-revs"
  ]
}

GitLens とは

GitLens は、Git の履歴を VSCode 上でより簡単に確認できるようにする拡張機能です。行にカーソルを合わせるだけで git blame の結果を表示して、誰がコードを変更したのかを素早く確認できます。

ホバーをすることでコミットの詳細を表示を表示できるので、そこから PR を開いてコードを変更した当時の会話や背景を確認する取った使い方をよく行っています。

特定のコミットを除外したい

GitLens はコードリーディングの際に重宝しますが、VSCode 上で表示されるのは最新のコミットのみです。そのため、Linter や Formatter などのツールでソースコード全体を上書きしたコミットがあると、コードの変更履歴を確認する際に邪魔になってしまいます。

最新のコミットが機械的な変更である場合、そのコミットを除外することでコードの変更履歴をより見やすくすることができます。

--ignore-revs-file オプションで除外するコミットを指定する

git の v2.23 から git blame のオプションに --ignore-rev オプションが追加されました。このオプションでコミットハッシュを指定することで、そのコミットを git blame の結果から除外できます。

git blame --ignore-revs-file --ignore-rev <sha1>

ですが、毎回 git blame を実行する際にコミットハッシュを指定するのは面倒です。そこで、--ignore-revs-file オプションを使うことで、除外するコミットをファイルに記述しておくことができます。このファイル名は任意ですが、.git-blame-ignore-revs という名前を指定することが一般的です。この命名規則に従うことで、GitHun の UI 上でもコミットを除外できるようになるというメリットがあります。

.git-blame-ignore-revs
# 複数のコミットを指定する場合は改行で区切る
<sha1>
<sha1>
git blame --ignore-revs-file .git-blame-ignore-revs

GitLens で --ignore-revs-file オプションを使う

git blame コマンドの実行時に --ignore-revs-file オプションを使うことで特定のコミットを結果から除外できることがわかりました。GitLens の設定で git blame の実行時に --ignore-revs-file オプションを使うように設定する必要があります。

gitlens.advanced.blame.customArguments の設定により、git blame の実行時に任意のオプションを指定できます。

.vscode/settings.json
{
  "gitlens.advanced.blame.customArguments": [
    "--ignore-revs-file", ".git-blame-ignore-revs"
  ]
}

これで、GitLens で特定のコミットを除外することができるようになりました。


Contributors

> GitHub で修正を提案する
この記事をシェアする
はてなブックマークに追加

関連記事