フック
フックを使用すると、Worktreeのライフサイクル中にコマンドを自動的に実行できます。
利用可能なフック
Section titled “利用可能なフック”| フック | 実行タイミング | 作業ディレクトリ |
|---|---|---|
pre_start | Worktree作成前 | 元リポジトリ |
post_start | Worktree作成後 | 新しいWorktree |
pre_clean | Worktree削除前 | 現在のWorktree |
post_clean | Worktree削除後 | メインリポジトリ |
[hooks]pre_start = ["echo 'Worktreeを準備中...'"]post_start = [ "pnpm install", "pnpm db:migrate"]pre_clean = ["git stash"]post_clean = ["echo 'クリーンアップ完了'"]すべてのフックコマンドで以下の環境変数が利用可能です:
| 変数 | 説明 |
|---|---|
VIBE_WORKTREE_PATH | 作成されたWorktreeの絶対パス |
VIBE_ORIGIN_PATH | 元リポジトリの絶対パス |
[hooks]post_start = [ "echo 'Worktree作成先: $VIBE_WORKTREE_PATH'", "echo '元リポジトリ: $VIBE_ORIGIN_PATH'"]フック実行時の出力動作
Section titled “フック実行時の出力動作”vibeはフック実行中にリアルタイム進捗ツリーを表示します:
✶ Setting up worktree feature/new-ui…┗ ☒ Pre-start hooks ┗ ☒ npm install ☒ cargo build --release ⠋ Copying files ┗ ⠋ .env.local ☐ node_modules/| 状況 | 標準出力 | 標準エラー出力 |
|---|---|---|
| 進捗表示が有効 | 抑制される | 常に表示 |
| 進捗表示が無効 | 標準エラーに出力 | 常に表示 |
| 失敗したフック | N/A | 常に表示 |
フック実行順序
Section titled “フック実行順序”vibe startの場合:
pre_startフックが元リポジトリで実行- Worktreeが作成される
- ファイル/ディレクトリがコピーされる
post_startフックが新しいWorktreeで実行
vibe cleanの場合:
pre_cleanフックが現在のWorktreeで実行- Worktreeが削除される
post_cleanフックがメインリポジトリで実行
よくあるパターン
Section titled “よくあるパターン”Node.jsプロジェクト
Section titled “Node.jsプロジェクト”[hooks]post_start = [ "pnpm install", "pnpm build"]pre_clean = ["git stash --include-untracked"]データベースマイグレーション
Section titled “データベースマイグレーション”[hooks]post_start = [ "pnpm install", "pnpm db:migrate", "pnpm db:seed"]Docker環境
Section titled “Docker環境”[hooks]post_start = [ "docker-compose up -d", "sleep 5", "pnpm db:migrate"]pre_clean = ["docker-compose down"]フックのスキップ
Section titled “フックのスキップ”--no-hooksオプションでフックをスキップできます:
vibe start feat/quick-fix --no-hooks