コンテンツにスキップ

フック

フックを使用すると、Worktreeのライフサイクル中にコマンドを自動的に実行できます。

フック実行タイミング作業ディレクトリ
pre_startWorktree作成前元リポジトリ
post_startWorktree作成後新しいWorktree
pre_cleanWorktree削除前現在のWorktree
post_cleanWorktree削除後メインリポジトリ
[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'"
]

vibeはフック実行中にリアルタイム進捗ツリーを表示します:

✶ Setting up worktree feature/new-ui…
┗ ☒ Pre-start hooks
┗ ☒ npm install
☒ cargo build --release
⠋ Copying files
┗ ⠋ .env.local
☐ node_modules/
状況標準出力標準エラー出力
進捗表示が有効抑制される常に表示
進捗表示が無効標準エラーに出力常に表示
失敗したフックN/A常に表示

vibe startの場合:

  1. pre_startフックが元リポジトリで実行
  2. Worktreeが作成される
  3. ファイル/ディレクトリがコピーされる
  4. post_startフックが新しいWorktreeで実行

vibe cleanの場合:

  1. pre_cleanフックが現在のWorktreeで実行
  2. Worktreeが削除される
  3. post_cleanフックがメインリポジトリで実行
[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"
]
[hooks]
post_start = [
"docker-compose up -d",
"sleep 5",
"pnpm db:migrate"
]
pre_clean = ["docker-compose down"]

--no-hooksオプションでフックをスキップできます:

Terminal window
vibe start feat/quick-fix --no-hooks