Cursor で修正内容をもとにボタン一つで Git のコミットメッセージを自動生成できるようになりました

Cursor で修正内容をもとにボタン一つで Git のコミットメッセージを自動生成できるようになりました

リテールアプリ共創部の中野です。

2024/11/24 に Cursor で、修正内容の中身をもとにしてコミットメッセージを生成してくれる機能がリリースされていました。

https://www.cursor.com/changelog/new-composer-ui-agent-commit-messages

Generation of git commit messages

これまで Cursor でコミットメッセージを作成する際には、Cursor の Chat 機能と Commit(Diff of Working State)というシンボル参照機能を併用して、プロンプトで指示してメッセージを生成して使用していました(以下、例)。

Commit(Diff of Working State)は現在のワークツリー上で発生している diff をコンテキストに与えられる機能です。

スクリーンショット 2024-12-17 11.47.33.png

今回のアップデートでは、Cursor の画面上でボタン一つでコミットメッセージを生成してくれるようになりました。

ファイルの変更だけではなく、ファイルの中身がどのように変わったのかも認識して生成してくれています。
しっかり、html ファイル内のタイトルを修正したことを認識してメッセージを作成してくれています。
また、このリポジトリでは、Conventional Commits のルールに則ったコミットメッセージでコミットしていたため、同じようなパターンで生成してくれています。

スクリーンショット 2024-12-17 11.35.14.png

今回は動作手順を試しました。

git コミットメッセージ生成機能について

Cursor 上でステージングされた修正ファイルの内容をベースにして、コミットメッセージを作成する機能です。

以下の手順でメッセージを作成してくれます。

  1. コミットしたいファイルをステージングする
  2. サイドバーの Git タブを開く
  3. コミットメッセージ入力フィールドの横にあるスパークルアイコン(✨)を確認
  4. スパークルアイコン(✨)をクリックすると、ステージングされた変更に基づいてコミットメッセージが生成

スクリーンショット_2024-12-17_11_40_40.png

このとき生成されるコミットメッセージは、以下の内容をベースに生成するようです。

  • ステージングされたファイルの変更
  • リポジトリの Git 履歴

わたしたちが、これまで git の diff で比較し、その内容をもとにコミットメッセージを考えて作成していた部分を省略してくれるようです。

また、Cursor 自体は過去のコミット履歴を学習してくれるみたいですので、たとえば Conventional Commits のような規則でコミットメッセージを作成していた場合は、そのパターンに則って生成してくれるようです。

注意点

なお、注意点として 2024/12/17 時点では、コミットメッセージの生成方法をカスタマイズしたり具体的な指示をプロンプトで提供する方法はないようでした。
こういった場合は、Cursor の Chat 機能を使い、自分でプロンプトを書いて指示し、生成してもらう必要がありそうです。

https://docs.cursor.com/features/generate-commit-message

Currently, there isn’t a way to customize or provide specific instructions for how commit messages should be generated. The AI will automatically adapt to your existing commit message style.

やってみた

コードを修正

npm モジュールを最新化する必要のあるリポジトリがあったので試してみました。
以下のコマンドでアップデートを行いました。

cspell, playwright-chromium, vue のバージョンアップをおこないました。

npm run update:pkgs

> update:pkgs
> volta pin node@22 npm@10 && ncu -u && npm install

success: pinned node@22.12.0 in package.json
success: pinned npm@10.9.2 in package.json
Upgrading /Users/*****/package.json
[====================] 6/6 100%

 cspell               8.16.0  →  8.17.0
 playwright-chromium  1.48.2  →  1.49.1
 vue                  3.5.12  →  3.5.13

Run npm install to install new versions.

up to date, audited 790 packages in 1s

215 packages are looking for funding
  run `npm fund` for details

1 low severity vulnerability

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

Cursor のメッセージ生成機能

左上の[ソース管理]のメニューから、[Generate Commit Message]を選択します。
コミット用のテキストボックス横で Cursor の機能を利用するか、GitHub Copilot の機能を利用するか選べました。

スクリーンショット_2024-12-16_12_57_25.png

Cursor の機能であるコミットメッセージ生成機能でメッセージを作成します。

Update dependencies: bump Vue to 3.5.13, cspell to 8.17.0, and playwright-chromium to 1.49.1; adjust Volta node and npm versions

スクリーンショット 2024-12-16 12.57.43.png

GitHub Copilot のメッセージ生成機能

私の環境では、GitHub Copilot も有効にしているため、GitHub Copilot 側のボタンもクリックしてみます。

Update dependencies in package.json

スクリーンショット 2024-12-16 12.57.56.png

さいごに

Cursor 上でボタン一つで変更内容をもとにコミットメッセージを生成できるようになっていました。
微々たるアップデートかもしれないですが、日頃コミットを細かくするような方には、かなり開発生産性に寄与するアップデートではないかとおもいます。

この記事がどなたかの参考になれば幸いです。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.