無料プレビュー 13 / 14

Claude Code / Cursor の Git 操作を読み解く

学習目標

このレッスンを終えると、次のことができるようになります。

  • Claude Code / Cursor が画面の裏で何をしているか追える
  • AI Agent への指示に「ガードレール」を入れる書き方を身につける
  • git diff を AI と共有して効果的にレビューさせられる

AI Agent が裏で叩いているコマンド

Claude Code に「ログイン機能を実装して、PR を作って」と頼むと、典型的にはこの順で動く:

sequenceDiagram participant H as 人間 participant AI as Claude Code participant Local as ローカル Git participant GH as GitHub H->>AI: ログイン機能を実装して PR 化 AI->>Local: git status AI->>Local: git switch -c feature/login AI->>Local: ファイル編集 (login.py) AI->>Local: git add -A AI->>Local: git diff --staged で確認 AI->>Local: git commit -m "feat: ..." AI->>GH: git push -u origin feature/login AI->>GH: gh pr create --title --body AI-->>H: PR URL を提示 H->>GH: PR をブラウザで確認 H->>AI: 「main をデプロイして」(承認後)

各ステップでログが流れる。AI は普段これを表示するが、忙しい時は流し読みになる。怪しい操作 (force push / reset --hard / main 直編集) を見たら即停止する癖を付ける。

良い AI 指示のテンプレート (Git 用)

ログイン機能を実装してください。

【守ってほしい制約】
- 新しいブランチ `feature/login-redirect` を切ってから作業
- 既存テストをすべて通す
- main には絶対に直接 commit しない
- push する前に git diff を表示して確認させてください
- PR は Draft で作成し、人間レビュー後に Ready for review にする

【参考】
- 仕様: docs/specs/login.md
- 既存実装: apps/accounts/views.py:42-

完成したら git log --oneline -5 で経緯を見せてください。

要点:

要素 効果
新ブランチ指定 main 汚染を防ぐ
テスト要件 リグレッション防止
「直接 commit しない」 明示的なガードレール
「diff を見せる」 人間が中身を確認できる
Draft PR 意図せぬ通知を防ぐ

Cursor 特有の挙動

Cursor は 「Composer」 という機能で複数ファイルを横断編集する。それと Git の関係:

flowchart LR C[Composer で<br/>5 ファイル編集] --> A{適用?} A -->|Accept All| W[作業ディレクトリに<br/>反映] W --> G{commit?} G -->|Cursor が自動| AC[git add + commit<br/>自動メッセージ] G -->|手動| H[人間が確認して commit]

Cursor は 自動で commit してくれないことが多い。Composer 適用後は git status で「Untracked / Modified が増えていないか」を必ず確認する。

AI と diff を共有する効果的な方法

AI に「この変更レビューして」と頼む時:

悪い例

このファイル見てください

→ ファイル全文を渡しても AI は「何が変わったか」を推測しないといけない

良い例

git diff main feature/login > /tmp/review.diff

そして:

/tmp/review.diff を読んで、以下の観点でレビューしてください:
1. main にない新ロジックの妥当性
2. テストカバレッジ
3. セキュリティ (認証・認可)
4. パフォーマンス懸念

特に怪しい行は引用しながら指摘してください。

diff を渡すと AI は 「何が変わったか」だけを見て判断する。トークン消費も少ない。

commit メッセージを AI に書かせるベストプラクティス

git diff --staged を AI に渡してメッセージ生成:

以下の diff から Conventional Commits 形式の commit メッセージを生成してください。
- 1 行目: 50 文字以内のサマリ (`feat:` / `fix:` / `chore:` / `docs:` / `refactor:` のいずれか)
- 空行
- 本文: なぜ / 何を / 影響範囲 を 3-5 行

diff:
[git diff --staged の出力を貼る]

Claude Code は git commit 前に既にこれをやっていることが多い。Cursor / 単独 ChatGPT で書く時はこのテンプレを使う。

「AI が暴走したら止める」習慣

flowchart LR AI[AI が連続実行<br/>diff 表示 → commit → push] --> S{違和感あった瞬間} S -->|Yes| Stop[Ctrl+C で停止] Stop --> R[git status + git log で確認] R --> D{元に戻す?} D -->|push 前| RST[git reset で巻き戻し] D -->|push 後| RV[git revert で打ち消し]

AI に怠惰になっても、自分の Git の知識が最後の防衛線。

振り返り

  • AI は裏で status → switch → add → commit → push → gh pr create を順に叩いている
  • 指示に「ガードレール (新ブランチ・テスト通過・Draft PR)」を明示する
  • レビューは git diff だけを渡すと効率的
  • 違和感を感じたら Ctrl+C で停止する習慣を持つ

次のレッスンは 60 分の実践演習です。

参考リンク

全 14 レッスンを、登録なしで無料で読めます。