Menu
Coddy logo textTech

Git Worktree

最終更新

git worktree を使うと、1 つのリポジトリで複数の作業ディレクトリを同時に持ち、それぞれを別々のブランチにできます。ブランチを切り替えるために作業を stash する代わりに、別のフォルダで別のブランチをチェックアウトします - PR をレビューしたり、ホットフィックスを実行したり、あるブランチを編集しながら別のブランチをビルドしたりでき、すべてが同じ .git 履歴を共有します。

これらをターミナルプレイグラウンドで試してみましょう - ブラウザ内の本物のシェルで、インストールは不要です。

構文

CommandWhat it does
git worktree add ../hotfix hotfix隣接するフォルダに hotfix をチェックアウトする
git worktree add -b new ../newブランチとそのための worktree を作成する
git worktree listすべての worktree とそのブランチを一覧表示する
git worktree remove ../hotfixworktree を削除する
git worktree prune古くなった worktree のエントリを整理する

実践例

フィーチャーブランチを乱さずに main のバグを修正する。

StepCommandResult
1git worktree add ../fix mainmain../fix にチェックアウトした
2../fix で修正してコミットするmain でホットフィックス完了
3git worktree remove ../fix後片付け; フィーチャーブランチは手つかずのまま

git worktree に関するよくある質問

git worktree とは何ですか?
worktree は、同じリポジトリに紐づいた追加の作業ディレクトリで、別のブランチやコミットにチェックアウトされます。複数のブランチを別々のフォルダで同時にチェックアウトした状態にでき、すべてが 1 つの .git 履歴を共有します - そのため 2 つのブランチで同時に作業するために stash やクローンをする必要がありません。
worktree はどうやって追加しますか?
git worktree add <path> <branch> を実行します。たとえば git worktree add ../hotfix hotfix です。Git はそのブランチを新しいフォルダにチェックアウトします。同時に新しいブランチを作成するには git worktree add -b <newbranch> <path> を使います。
ブランチを切り替える代わりに worktree を使うべきなのはいつですか?
ブランチの切り替えが支障になる場合に使います - コミットしていない作業がある、中断したくない長いビルドがある、または 2 つのブランチを並べて比較する必要がある、といった場合です。worktree は現在のブランチに触れることなく、別のブランチを専用のフォルダで提供します。
worktree はどうやって削除しますか?
git worktree remove <path> を実行します。フォルダを手動で削除した場合は、git worktree prune を実行して古い管理情報を整理します。メインの worktree (元のリポジトリフォルダ) は削除できず、追加した余分なものだけを削除できます。
これをオンラインで練習できますか?
はい。ターミナルプレイグラウンドを開けば、ブラウザ内の本物のシェルで git worktree を実行できます - インストールは不要です。Coddy の無料インタラクティブ Git コースでも、ブランチのワークフローを段階的に扱っています。
Coddy programming languages illustration

Coddy で Git を学ぼう

始める