Skip to content

原文(日本語に翻訳)

worktree固有のgitdirの代わりにメインリポジトリの設定からリモートURL解決が読み込まれることが原因で、git worktreeでバックグラウンドタスクが失敗していた問題を修正 (anthropics/claude-code#26065)

原文(英語)

Fixed background tasks failing in git worktrees due to remote URL resolution reading from worktree-specific gitdir instead of the main repository config (anthropics/claude-code#26065)

概要

git worktree を使用して複数のブランチを同時に操作している環境で、Claude Codeのバックグラウンドタスク(並列エージェント処理など)が失敗する問題が修正されました。原因はリモートURL解決の際にworktree固有の .git ディレクトリ(gitdir)を参照していたためで、メインリポジトリの設定を正しく参照するよう修正されました。

基本的な使い方

bash
# git worktreeの設定例
git worktree add ../feature-branch feature/my-feature
git worktree add ../hotfix main

# 修正後: worktreeディレクトリ内でもバックグラウンドタスクが正常に動作
cd ../feature-branch
claude  # バックグラウンドタスクが正常に実行される

実践例

並行機能開発でのworktree使用

bash
# メインリポジトリのセットアップ
git clone https://github.com/myorg/myproject.git
cd myproject

# 複数のworktreeを作成して並行開発
git worktree add ../feature-a feature/feature-a
git worktree add ../feature-b feature/feature-b
git worktree add ../bugfix fix/critical-bug

# 各worktreeでClaude Codeを使用
cd ../feature-a
claude -p "feature-aの実装を手伝ってください"
# 修正後: バックグラウンドタスクが正常に動作し、リモートURL(GitHub等)も正しく解決される

CI/CDとworktreeの組み合わせ

bash
# CI環境でのworktree使用シナリオ
git worktree add /tmp/ci-review origin/main

cd /tmp/ci-review
# 修正後: Claude Codeのバックグラウンドタスクがリモートリポジトリ情報を
# 正しく取得できるようになった
claude -p "このPRのコードレビューを実施してください"

worktreeでの並列Claude作業

bash
# 複数のworktreeで同時にClaudeを実行するシナリオ
# ターミナル1: メインリポジトリ
cd ~/project/main
claude &

# ターミナル2: featureブランチのworktree
cd ~/project/feature-branch
claude &

# 修正後: 両方のworktreeでバックグラウンドタスクが
# 正しいリモートURL設定で動作する

注意点

  • この修正はv2.1.47以降で有効です
  • git worktree はGit 2.5以降で利用可能な機能で、一つのリポジトリを複数のディレクトリにチェックアウトできます
  • worktreeは .git ファイル(gitdir ポインタ)を持ちますが、実際の設定はメインリポジトリの .git/ ディレクトリにあります
  • この修正はバックグラウンドタスクのリモートURL解決ロジックを改善するものです
  • worktreeを多用する開発者(大規模なフィーチャー開発、ホットフィックスなど)に特に関係します

関連情報