VSCode + GitHub Copilot でコミットメッセージを書く環境を整える


2025年 05月 09日

こんにちは、小宮です。

以前、開発環境を vim から VSCode に切り替えたのですが、git の操作はいまでも git コマンドを利用しています。そのため、コミットメッセージを書くのはおもに -m オプションもしくは vim 経由で行っていました。

VSCode の UI からコミットができることも、GitHub Copilot がコミットメッセージを提案してくれることも知っていたのですが、サイドバーのあの狭いスペースでコミットメッセージを書くことに抵抗があり、手慣れた方法(ターミナル + vim)でコミットしていました。

サイドバーのあの狭いスペース

しかし、2024.11 の VSCode のアップデート (1.96) で Copilot によるコミットメッセージの生成に custom instructions が設定できるようになったことを知り、重い腰を上げて VSCode でコミットする環境を整えてみることにしました。

エディタ領域でコミットメッセージを書く

いままで知らなかったのですが、コマンドパレットから “Git: Commit” コマンドを実行することで、エディタ領域を使ってコミットメッセージを書くことができます。

この方法であれば、サイドバーのあの狭いスペースを使わずに済みます。たったこれだけなのですが、僕にとっては VSCode でコミットする心理的な障壁がかなり減りました。また、ここを切り替えるだけで Copilot の入力支援も受けられます。

コミットする際は Cmd+P でコマンドパレットを開いて、コマンド(の一部)を入力します。手元では Cmd+P com あたりまで入力したあたりでコマンドが絞り込まれます。

ショーットカットキーを設定してもよさそうだと思うのですが、自分の場合はショートカットキーを設定したこと自体を忘れがちなので、当面コマンドパレットからの選択で運用しようと思っています。

サイドバーのコミットフォームを消す

これでサイドバーのコミットフォームは不要となったので、あのフォームを無効化します。
設定画面から git.showCommitInput をオフにすると、サイドバーからコミットのフォームが消えます。

ほとんどソース管理メニューを開くことはないのですが、目に入ると気になってしまうので無効化してあります。

Copilot が提案しやすいよう、verbose モードでコミットメッセージを編集する

Copilot が提案してくれるコミットメッセージの精度を上げるため、git commit の verbose モードを有効にしておきます。verbose モードを有効にすると、コミットメッセージの編集用ファイルに差分が出力されるため、Copilot の提案の精度が上がるのではないかと予想されます。

$ git config --global commit.verbose true

ちなみに、少し前に How Core Git Developers Configure Git という記事を参考に git の設定をひととおり見直しており、実はこのときに verbose モードを設定していました。

Copilot の custom instructions を設定する

さて、ここからが本命の設定です。Copilot がコミットメッセージを生成する際のルールを instructions として与えます。

と言っても、適切な設定がどういうものかよくわからないので、ひとまず GitHub Copilot のコミットメッセージ生成のルールがカスタムできるようになった!(試験段階だけど) の記事を参考に以下の設定を行いました。

"github.copilot.chat.commitMessageGeneration.instructions": [
    {
        "text": "必ず日本語で記述してください"
    },
    {
        "text": "その後ファイルごとの詳細な変更内容を記述してください"
    }
],

この設定はプロジェクトメンバーに共有できるよう .vscode/settings.json に設定を追加しています。

いまのところ、まだ instructions の効果を実感できていないのですが、効果が見えてきたら instructions をもう少し盛り込んでみようと思います。

環境変数 GIT_EDITOR を設定してみた (不採用)

いままでの癖でコマンドラインから git commit コマンドを実行したときにも VSCode でコミットメッセージをかけるよう、環境変数 GIT_EDITOR を設定してみました。

GIT_EDITORcode --wait というコマンドを設定しておくと、 git commit コマンドをトリガーに VSCode でコミットメッセージを編集できます。

しかし、少し運用した結果、この設定は不採用にしました。

コミット以外の操作はいまでもコマンドラインから実行しているのですが、git rebase を実行したときに GitLens 拡張が起動してしまい、グラフィカルな rebase UI が出てくるのが非常に煩わしかったためです。また、癖で git commit を実行しても別に良いだろうということで、ここは頑張らないことにしました。

今回やらなかったこと

GitLens にも AI によるコミットメッセージ生成機能があるようですが、今回は試していません。

まとめ

git と VSCode の設定を変更して、コミットメッセージを VSCode + Copilot で書く環境を整えてみました。
しばらく運用している印象としては、そこそこサジェストをしてくれているように感じます。

まだ手癖でターミナルからコミットしてしまうことも多いのですが、しっかりコミットメッセージを書くときには VSCode が役に立ちそうです。

なお、変更をしたのはコミットメッセージの編集のみで、add や push などの操作はまだターミナルから行っています。すべての操作を VSCode に移すつもりはなかったので、もともとの目的である Copilot の利用ができて満足しています。

世の中では AI にコードを書かせよう、Agent に開発させようという話が盛んなこともあり、二周ぐらい出遅れている感はありますが、
ちょこちょこと環境を改善していこうと思います。

参考資料