この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。同じGitリポジトリでmainを保ったまま、別フォルダーにhotfixブランチを同時チェックアウトするgit worktreeの使い方を扱います。検証ステータス:📘 Git公式ドキュメント確認済み・実機未確認
情報確認日:2026年10月4日。
「mainで動作確認中だけど、急ぎの修正ブランチも開きたい」。そんなとき、毎回stashしてcheckoutを切り替える代わりに git worktree で同じリポジトリに複数の作業ツリーを持てます。
いまの作業ツリーを確認
git status git worktree list
まず未コミット変更があるかと、既存worktreeを確認します。
別フォルダーにhotfixを作る
リポジトリの親フォルダーへ myrepo-hotfix を作り、新しい hotfix ブランチをチェックアウトする例です。
git worktree add ../myrepo-hotfix -b hotfix
成功すると、元のフォルダーは元ブランチのまま、別フォルダーではhotfixを編集できます。
project/ mainの作業ツリー myrepo-hotfix/ hotfixの作業ツリー
Git公式ドキュメントでは、1つのリポジトリがmain worktreeに加えて0個以上のlinked worktreeを持てると説明されています。
一覧を見る
git worktree list
どのパスにどのブランチが割り当てられているか確認できます。
終わったら削除
hotfix側で必要な変更をcommit/pushしたあと、作業ツリーがクリーンなら元リポジトリ側などから削除できます。
git worktree remove ../myrepo-hotfix
通常、未追跡・未コミット変更が残るworktreeは安全のためそのまま削除できません。いきなり --force を使わず、先に git status を確認します。
checkout切替との違い
| 方法 | mainを開いたまま | 別ディレクトリ | 向く場面 |
|---|---|---|---|
| git switch | × | × | 1つずつ作業 |
| git worktree | ○ | ○ | 並行修正・比較・ビルド |
大きなリポジトリを丸ごともう一度cloneするより、Git管理情報を共有して別の作業場所を増やせるのがポイントです。
注意点
同じブランチを複数worktreeへ普通にチェックアウトしようとすると制約があります。「どのworktreeがどのブランチを使っているか」は git worktree list で確認してください。
