git worktree の使い方

作業ツリーを増やす

書き方

git worktree add パス [ブランチ]
git worktree add -b 新しいブランチ パス [起点]
git worktree list
git worktree remove パス
git worktree prune

1 つのリポジトリで、別のブランチを別のディレクトリに同時に取り出します。コミットやブランチは共有します。同じブランチは 2 か所で取り出せません。

よく使うオプション

オプション意味
add パス [ブランチ]別のディレクトリにブランチを取り出す
-b 新しいブランチadd のとき、ブランチを作って取り出す
list作業ツリーの一覧
remove パス作業ツリーを片付ける
prune手で消したディレクトリの記録を片付ける

例

$ git worktree add ../app-hotfix -b hotfix main

main から hotfix のブランチを作り、隣のディレクトリに取り出します。今の作業はそのままで急ぎの修正ができます。

$ git worktree list/home/user/app         9c1e2f4 [feature]
/home/user/app-hotfix  9c1e2f4 [hotfix]

作業ツリーと、それぞれで取り出しているブランチを見ます。

$ git worktree add ../app-review origin/feature

人のブランチを別のディレクトリに取り出して、手元の作業を止めずにレビューします。

$ git worktree remove ../app-hotfix

使い終わった作業ツリーを片付けます。ブランチとコミットは残ります。

よくある間違い・注意

  • 同じブランチを 2 つの作業ツリーで同時に取り出すことはできません。
  • ディレクトリを rm で消したときは、git worktree prune で記録も片付けます。

実際に打って練習する

Git コースの Lv61「もう一つの作業台 git worktree」で覚えます(第9章 熟練の道具)。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜10 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Git コマンド一覧(使い方と例)へ戻る