Gitメンション
Gitメンションを使用すると、リポジトリの履歴や変更をClineとの会話に直接取り込むことができます。@git-changes
でコミットされていない変更を、@[commit-hash]
で特定のコミットを参照できます。
チャットで@
を入力すると、メニューから「Git Changes」を選択するか、@git-changes
を直接入力できます。特定のコミットの場合は、@
に続いてコミットハッシュ(最低7文字)を入力します。Clineはgitステータス、diff、コミットメッセージ、その他の関連情報をすぐに確認できます。
コードの変更を理解したり、最近のコミットによって引き起こされた問題のトラブルシューティングをするときにgitメンションを常に使用しています。diffやコミットログをコピー&ペーストしようとする代わりに、単に次のように尋ねます:
このコミットが認証フローを壊したと思います: @a1b2c3d
何が変更され、なぜ問題を引き起こしている可能性があるのか説明していただけますか?
これにより、Clineはコミットメッセージ、作成者、日付、そして完全なdiffを含む完全なコミット情報を得ることができます。その後、Clineは何が変更されたか、そしてそれがコードベースの他の部分にどのような影響を与える可能性があるかを正確に分析できます。
@git-changes
メンションは、変更作業中でコミット前にフィードバックが欲しい場合に最適です:
現在の変更内容です: @git-changes
ユーザープロフィールの新機能を実装しようとしています。このアプローチは適切でしょうか?
潜在的な問題や改善提案はありますか?
これにより、Clineは新しいファイル、変更されたファイル、そしてそのdiffを含む、コミットされていないすべての変更を確認できます。その後、Clineはあなたの変更をレビューし、実装に関するフィードバックを提供できます。
Gitメンションはファイルメンションと組み合わせると特に強力です。バグを調査するときには、両方を参照することがよくあります:
このコミットがバグを引き起こしたと思います: @a1b2c3d
現在の実装です: @/src/components/Auth.jsx
意図した機能を保持しながら問題を修正するにはどうすればよいでしょうか?
次回コードの変更や問題の調査をするときは、変更を手動で説明したりコピーしたりする代わりに、gitメンションを使ってみてください。Clineが何が変更されたか、どのようなコンテキストで変更されたかを正確に確認できるため、より正確なヘルプを得られます。
内部の仕組み
メッセージでgitメンションを使用すると、舞台裏では以下のことが起こります:
Git変更の場合(@git-changes
)
-
メッセージを送信すると、Clineはテキスト内の
@git-changes
パターンを検出します -
拡張機能はgitコマンドを実行して、リポジトリの現在の作業状態を取得します
-
git status
とgit diff
の出力をキャプチャし、コミットされていないすべての変更を確認します -
この情報は構造化された形式でメッセージに追加されます:
<git_working_state>
On branch main
Changes not staged for commit:
modified: src/components/Button.jsx
modified: src/styles/main.css
[すべての変更を含む完全なdiff出力]
</git_working_state>
特定のコミットの場合(@[commit-hash]
)
-
メッセージを送信すると、Clineは
@
に続くコミットハッシュパターンを検出します -
拡張機能は
git show
や関連コマンドを実行して、そのコミットに関する情報を取得します -
コミットメッセージ、作成者、日付、そして完全なdiffを取得します
-
この情報は構造化された形式でメッセージに追加されます:
<git_commit hash="a1b2c3d">
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t
Author: Developer Name <dev@example.com>
Date: Mon May 20 14:30:45 2025 -0700
ログインフォームの認証バグを修正
[コミット内のすべての変更を表示する完全なdiff出力]
</git_commit>
このプロセスはgitメンションを使用するたびに自動的に実行され、diffやコミットログをコピー&ペーストすることなく、AIにコード変更の完全な可視性を提供します。