Claude Code Git ワークフロー

Claude Code は Git 機能と深く統合されており、自然言語でほぼすべての Git 操作を実行できます。コミットの作成、ブランチの管理、マージ競合の処理、Git Worktree を利用した並行ワークフローの実現などが含まれます。この章では、Claude Code で Git を効率的に使用する方法を詳しく説明します。


基本的な Git 操作

1、変更の確認

自然言語で質問するだけで Git の状態を取得できます:

どのファイルを変更しましたか?
今回の変更内容は何ですか?
最近 10 次提交都改了什么?
检查一下当前的 git 状态

Claude は自動的に適切な Git コマンドを実行し、結果を表示します。

2、コードのコミット

簡単なコミット:

今回の変更をコミットしてください
今回の修正をコミットしてください

説明付きのコミット:

把这次的修改提交,commit 信息说明修复了登录验证的 bug

Claude は実際の変更内容に基づいて、規約に沿ったコミットメッセージを自動生成します。

3、ブランチ管理

新建一个 feature/user-profile 分支
切换到 develop 分支
把 main 分支的最新改动合并进来
すべてのブランチを表示してください
マージ済みのブランチを削除してください

マージ競合の解決

1、単純な競合を自動解決

マージ競合を解決してくれませんか?
このファイルに競合があります。どちらのバージョンが正しいか見てください

Claude は競合内容を分析し、プロジェクトのコンテキストに基づいて適切なバージョンを選択するか、解決策を提案します。

2、複雑な競合は手動介入で解決

競合が複雑すぎる場合、Claude は各選択肢の利点と欠点を説明します:

这个冲突涉及架构设计,你来决定保留哪个方案:
A. 保留我们的实现...
B. 保留引入的优化...

Claude Code はファイルを変更する前に、変更内容を表示して確認を求めます。マージ競合のような高リスクな操作では、各変更を特に慎重に確認する必要があります。


Git Worktree 並行ワークフロー

Git Worktree を使用すると、ブランチを切り替えたりリポジトリをクローンしたりせずに、異なるディレクトリで同時に別々のブランチを扱うことができます。これは Claude Code で最も強力な並行作業方法の一つです。

1、Claude で Worktree を作成する

Claude 起動時に worktree を指定する:

claude --worktree feature-auth

これにより自動的に:

  • に.claude/worktrees/feature-auth/新しいディレクトリを作成
  • 基づいてorigin/HEAD(リモートのデフォルトブランチ)から新しいブランチを作成
  • 新しいディレクトリで独立した Claude セッションを開始

複数の worktree を同時に開く:

claude --worktree bugfix-123
claude --worktree

名前を指定しない場合、Claude は自動的に面白い名前を生成します(例:bright-running-fox)。

2、Worktree のプロパティ

プロパティ 值
場所 <repo>/.claude/worktrees/<name>
ブランチ命名 worktree-<name>
ベースブランチ リモートorigin/HEAD指すブランチ

3、Worktree のライフサイクル

シナリオ 動作
変更が一切ない場合 Worktree とブランチが自動的に削除される
変更またはコミットが存在する場合 Claude が保持するか削除するかの選択を促す
Claude のクラッシュにより孤立した worktree が発生した場合 設定した日数を超えるとcleanupPeriodDays自動的に削除されます

4、.gitignore ファイルを Worktree にコピーする

プロジェクトのルートディレクトリに作成する.worktreeincludeファイル。worktree にコピーする gitignore ファイルを指定します:

.env
.env.local
config/secrets.json

特定のパターンに一致する且gitignore されたファイルのみがコピーされます。

5、Worktree を手動管理する

より細かい制御が必要な場合は、手動で管理できます:

# 创建 worktree 并指定分支
git worktree add ../project-feature-a -b feature-a

# 使用已有分支创建 worktree
git worktree add ../project-bugfix bugfix-123

# 在 worktree 中启动 Claude
cd ../project-feature-a && claude

# 完成后清理
git worktree list
git worktree remove ../project-feature-a

以下を.claude/worktrees/追加することをお勧めします.gitignore。これにより、worktree の内容がメインリポジトリで未追跡ファイルとして表示されるのを防げます。


サブエージェント Worktree 分離

サブエージェントは worktree 分離機能を使用して、完全に独立した並行作業を実現できます:

方法1: Claude に自動処理させる

让子代理使用 worktree 来并行处理这些任务

方法2: サブエージェント設定で指定する

例

---
name
: experimental-refactor
description
: 分離された worktree でリファクタリング案を試す
isolation
: worktree    # 一時的な worktree で実行
tools
: Read, Write, Edit, Bash
---

分離された環境で自由に変更でき、メインブランチには影響しません。
完了後、変更と案が成功したかどうかをまとめます。

サブエージェント Worktree の特徴

  • 各サブエージェントは自動的に独立した worktree を取得
  • タスク完了後に worktree を自動クリーンアップ
  • 変更はメインリポジトリに影響しない
  • 探索的なタスクや案の比較に適している

Pull Request ワークフロー

1、PR を作成する手順

ステップ1: Claude に変更を要約させる

認証モジュールに行った変更をまとめてください

ステップ2: PR を生成

创建一个 PR

ステップ3: PR の説明を仕上げる

在 PR 描述中补充更多关于安全改进的内容

2、PR とセッションの関連付け

を使用してgh pr createPR を作成すると、Claude セッションが自動的にその PR に関連付けられます:

  • セッションが PR にリンクされると、PR から会話を復元できます
  • を使用してclaude --from-pr <number>関連付けられたセッションを復元

3、GitHub CLI の使用

Claude は使用方法を理解していますghCLI ツール。インストールされていない場合gh、Claude は GitHub API の読み書きができますが、機能は限られています。

# Claude 可以执行的操作
gh pr create --title "Fix login bug"
gh pr view --comments
gh pr diff
gh issue create --title "Bug report"

セッション管理と Git 統合

1、以前のセッションを復元

コマンド 機能
claude --continue 現在のディレクトリの最近の会話を続行
claude --resume セッションセレクタを開くか、名前で復元
claude --from-pr 123 特定の PR に関連付けられたセッションを復元

2、セッションセレクタの Git 機能

ショートカットキー 機能
B 現在の git ブランチのセッションをフィルタリング

3、セッションメタデータの表示

セッションセレクタには以下の情報が表示されます:

  • セッション名または初期プロンプト
  • 最終アクティブからの経過時間
  • メッセージ数
  • Git ブランチ(ある場合)

4、ブランチセッション

を使用して/branch、/rewind 或 --fork-session作成されたセッションはルートセッションの下にグループ化され、管理が容易になります。


プランモードと安全分析

プランモード(Plan Mode)は読み取り専用操作を使用してコードベースを安全に分析し、書き込み操作は一切実行しません。

プランモードの起動

claude --permission-mode plan

またはセッション内で一回限りのクエリを実行:

claude --permission-mode plan -p "分析认证系统并提出改进建议"

settings.json でデフォルトモードを設定

例

{
  "permissions": {
    "defaultMode": "plan"
  }
}

典型的なワークフロー例

ワークフロー1: マルチタスク並行開発

# 场景:同时开发三个功能,但不想切换分支

> 启动三个 worktree,分别处理登录重构、支付集成和性能优化
> 在每个 worktree 中独立工作,完成后合并到主分支

ワークフロー2: バグ修正フロー

# 第一步:描述问题
> 用户反馈:用户登出后刷新页面仍然显示已登录

# 第二步:创建修复分支
> 创建一个 bugfix/session-cookie 分支来修复这个问题

# 第三步:分析与修复
> 先分析可能的原因,在 bugfix 分支中修复

# 第四步:提交并创建 PR
> 提交修复并创建一个 PR

ワークフロー3: コードレビュー

# 审查特定文件
> 帮我审查 src/payment/processor.ts,重点关注错误处理

# 审查 git 改动
> 审查我这次的所有改动,看看有没有明显的问题

# 在独立分支中审查
> 创建一个 worktree 来审查这个重构方案

ワークフロー4: 機能開発と検証

# 主会话:实现新功能
> 实现用户资料编辑功能

# 子代理:并行运行测试
> 在子代理中运行所有测试,只返回失败的测试和根因

# 子代理:检查代码规范
> 使用子代理审查代码是否符合项目规范

# 完成后:创建 PR
> 创建一个 PR 并添加详细的描述

非 Git バージョン管理システム

SVN、Perforce、Mercurial ユーザーの場合、Claude Code はフックによる拡張をサポートしています。

カスタムフックの設定

に.claude/settings.json設定:

例

{
  "hooks": {
    "WorktreeCreate": "./scripts/create-worktree.sh",
    "WorktreeRemove": "./scripts/remove-worktree.sh"
  }
}

これらのフックはデフォルトのgit動作を置き換えます。フックスクリプトを使用するときは、スクリプト内部でローカル設定ファイルをコピーし、使用するのではなく.worktreeinclude。


Anthropic 内部チームのベストプラクティス

  • worktree を複数開く:3〜5個の git worktree を同時に実行し、それぞれで独立したセッションを開きます。これはチームで認められた効率向上のベストプラクティスです。
  • 複雑なタスクはまず計画する:使用するplanモードでは、1つの Claude に計画を書かせ、もう1つに参謀としてレビューさせます。
  • エラー後は CLAUDE.md を更新する:修正のたびに「あなたの CLAUDE.md を更新し、同じ間違いを犯さないように」という一文を追加します。
  • 検証段階では、専用に計画モードに入る:検証プロセスが安全かつ制御可能であることを保証します。

よくある質問

Q:Worktree とブランチの違いは何ですか?

Worktree は独立したディレクトリであり、異なるディレクトリで同時に作業できます。ブランチは同じディレクトリ内の異なるコミット履歴です。Worktree は、複数の複雑なタスクを同時に処理する必要があるシナリオに適しています。

Q:Claude が作成した Worktree はメインリポジトリに影響しますか?

いいえ。Worktree は独立したディレクトリを持ち、その内容がメインリポジトリの未コミット変更に影響することはありません。

Q:Claude に特定のブランチで作業させるにはどうすればよいですか?

まずブランチを切り替えてから Claude を起動するか、または使用します。claude --worktree <name>自動的にブランチを作成します。

Q:Worktree が多すぎると、ディスク容量を多く消費しますか?

Git Worktree はリポジトリ履歴を共有するため、新しいディレクトリにはブランチの差分のみが含まれ、消費するディスク容量は非常に小さくなります。

Q:サブエージェントの Worktree はいつクリーンアップされますか?

正常に完了すると、Claude は保持または削除を選択するよう求めます。クラッシュによって孤立した worktree は、超えるとcleanupPeriodDays設定された日数が経過すると自動的に削除されます。

その他の拡張機能