Skip to content

原文(日本語に翻訳)

claude --worktree で大規模モノレポにおいてgit sparse-checkoutを使って必要なディレクトリだけをチェックアウトするための worktree.sparsePaths 設定を追加しました

原文(英語)

Added worktree.sparsePaths setting for claude --worktree in large monorepos to check out only the directories you need via git sparse-checkout

概要

大規模なモノレポリポジトリで claude --worktree を使用する場合、worktree.sparsePaths 設定により必要なディレクトリだけをsparse-checkoutで取得できるようになりました。これにより、数GBに及ぶモノレポ全体をチェックアウトすることなく、作業対象のパスのみを効率的に取得してworktreeを作成できます。

基本的な使い方

.claude/settings.json または ~/.claude.jsonworktree.sparsePaths を設定します:

json
{
  "worktree": {
    "sparsePaths": [
      "packages/backend",
      "packages/shared",
      "tools/scripts"
    ]
  }
}

設定後、--worktree フラグ付きで起動するとsparse-checkoutが自動適用されます:

bash
claude --worktree

実践例

ユースケース1: フロントエンド専任の開発者

バックエンドコードを含む大規模モノレポで、フロントエンドだけを扱う場合:

json
// .claude/settings.json
{
  "worktree": {
    "sparsePaths": [
      "apps/web",
      "apps/mobile",
      "packages/ui-components",
      "packages/design-tokens"
    ]
  }
}

これにより、apps/backendservices/infrastructure/ などの不要なディレクトリはworktreeにチェックアウトされません。

ユースケース2: マイクロサービスの特定サービスを作業

特定のサービスと共通ライブラリのみを対象にする場合:

json
// プロジェクトルートの .claude/settings.json
{
  "worktree": {
    "sparsePaths": [
      "services/user-service",
      "services/auth-service",
      "libs/common",
      "libs/proto-definitions",
      "docs/api"
    ]
  }
}

ユースケース3: ユーザー別のグローバル設定

ホームディレクトリの設定ファイルでユーザー共通のスパースパスを定義:

json
// ~/.claude.json
{
  "worktree": {
    "sparsePaths": [
      "src",
      "tests",
      "docs"
    ]
  }
}

ユースケース4: --worktreeとの組み合わせ

並列エージェントタスクと組み合わせてモノレポの特定部分だけを効率よく処理:

bash
# worktreeを使用してバックエンドサービスの変更を分離して作業
claude --worktree -p "user-serviceのAPIエンドポイントをリファクタリングして"

注意点

  • sparsePaths に指定したパス以外のファイルはworktreeにチェックアウトされません。依存するパスをすべて含めるようにしてください
  • パスはリポジトリルートからの相対パスで指定します
  • git sparse-checkout(cone mode)を使用しているため、Gitのバージョン2.25以降が推奨されます
  • worktree.sparsePaths が未設定の場合は従来通りリポジトリ全体がチェックアウトされます
  • パスの変更後はworktreeを再作成するか、git sparse-checkout set で更新が必要な場合があります

関連情報