Skip to content

原文(日本語に翻訳)

非gitリポジトリで WorktreeCreate フックが実行される前に --worktree がエラーで終了する問題を修正しました。

原文(英語)

Fixed --worktree exiting with an error in non-git repositories before the WorktreeCreate hook could run

概要

--worktree オプションをgit管理外のディレクトリで使用すると、WorktreeCreate フックが実行される前にエラーで終了してしまう問題が修正されました。これにより、フックを使って非gitディレクトリでもワークツリーのセットアップ処理を行えるようになります。

基本的な使い方

非gitリポジトリで --worktree を使用する際の基本的なコマンド:

bash
claude --worktree /path/to/non-git-directory

修正前はこの状況でエラーが発生し、WorktreeCreate フックが実行されませんでした。修正後はフックが先に実行されるようになります。

実践例

ユースケース: WorktreeCreateフックで非gitディレクトリを初期化する

.claude/settings.json でフックを設定して、非gitディレクトリを自動的にgitリポジトリとして初期化する:

json
{
  "hooks": {
    "WorktreeCreate": [
      {
        "command": "git init && git add . && git commit -m 'Initial commit'"
      }
    ]
  }
}

このフックが --worktree 起動時に先に実行され、ディレクトリをgit管理下に置いてからClaude Codeが動作します。

ユースケース: カスタムプロジェクト構造のセットアップ

bash
#!/bin/bash
# WorktreeCreateフックスクリプト
# 非gitディレクトリに必要な設定を追加

if [ ! -d ".git" ]; then
  git init
  git add -A
  git commit -m "Initial commit for Claude Code worktree"
fi

注意点

  • この修正により、WorktreeCreate フックが期待通りの順序で実行されます
  • 非gitディレクトリで --worktree を使用する際は、WorktreeCreate フックでgitの初期化を行うことを推奨します
  • フックがない場合の動作は以前と同様です

関連情報