git worktreeでmainを開いたままhotfixを並行作業する ― checkout切替を減らす

Linux・CLI・DevOpsカテゴリを表すパンダのイラスト Linux・CLI・DevOps

この記事について
この記事は、生成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 で確認してください。

公式情報

文書情報

記事タイトル
git worktreeでmainを開いたままhotfixを並行作業する ― checkout切替を減らす
作成日
更新日
Source URL
https://papanda925.com/?p=17793

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました