Git Worktree

高度な Git

Amanda Crawford-Adamo

Software and Data Engineer

Git Worktree とは

Git Worktree コマンド

git worktree
  • ワークスペースで複数ブランチを同時に checkout 可能
  • 通常のリポジトリ checkout に近いが効率的
  • stash は不要
  • 開発中にブランチを切り替える必要なし

円と線で構成された架空の木の図

高度な Git

Git Worktree と Git Switch の比較

この表は、開発ワークフローにおける git worktree と git switch の比較です。 $$

Git Worktree Git Switch
複数のアクティブブランチ 同時に1つのアクティブブランチ
個別のディレクトリ 単一の作業ディレクトリ
stash 不要 stash が必要になる場合あり
高度な Git

Git Worktree の作成

<branch> から <path> に新しいワークツリーを作成

git worktree add <path> <branch>

bugfix/data-validation ブランチから ../etl-bugfix ディレクトリに新しいワークツリーを作成

git worktree add ../etl-bugfix bugfix/data-validation
高度な Git

ワークツリーの一覧と削除

  • すべてのアクティブなワークツリーを一覧表示: git worktree list

出力例

$ git worktree list
flight-pipeline            a1b2c3d [main]
flight-pipeline-feature    e4f5g6h [feature]
flight-pipeline-hotfix     i7j8k9l [hotfix]
  • <path> のワークツリーを削除: git worktree remove <path>

出力例

$ git worktree remove flight-pipeline-hotfix
flight-pipeline-hotfix: deleted
高度な Git

Git Worktree を使うべきとき

使用に適する場面:

  • 複数機能を同時開発する
  • 進行中の作業を乱さず緊急バグ修正
  • 異なるブランチで並行テスト
  • 開発を続けながらコードレビュー

再検討すべき場合:

  • ディスク容量が限られる
  • 更新頻度が高くマージが複雑なプロジェクト
高度な Git

Git Worktree のベストプラクティス

Git worktree 利用時のポイント:

  1. ワークツリーのディレクトリ名規約を明確にする
  2. 使わないワークツリーは定期的に prune して整理
  3. 大規模プロジェクトでは特にディスク容量に注意
  4. 混乱防止のため短期の並行作業に使う
高度な Git

練習しましょう!

高度な Git

Preparing Video For Download...