Git ワークツリーを使用する
標準的な Git リポジトリでは、通常、単一のワークツリーが使用されます。 この設定でブランチを切り替えるには、未完了の作業を コミットするか、 スタッシュを実行する必要があります。 Git ワークツリーでは、複数のブランチを別々のディレクトリに同時にチェックアウトすることができ、それらはすべて単一の .git ディレクトリにリンクされます。
Git ワークツリーとは何ですか?
Git ワークツリーを使用すると、同じリポジトリの複数のブランチを別々のディレクトリに同時にチェックアウトできます。 Git ワークツリーの一般的な使用例は次のとおりです。
AI を活用した開発: ローカルに保存されていない変更が上書きされないように、AI エージェントを別のワークツリーで実行します。
緊急バグ修正: 現在の作業を中断することなく、別のディレクトリで重大な問題を解決します。
並行コードレビュー: 既存の環境、データベースの状態、ビルドアーティファクトに影響を与えることなく、プルリクエストとマージリクエストをローカルでチェックアウトおよびテストできます。
長時間実行されるタスク: 1 つのワークツリーで大規模なテストスイートや複雑なビルドを実行しながら、別のワークツリーでコードの記述を続けます。
マルチブランチコンテキスト切り替え: スタッシュの変更や、ブランチ切り替え後の大量のファイルの再インデックスを待つことなく、複数の長時間実行されるブランチを管理します。
Git ワークツリーは、プロジェクトのリンクされたコピーです。 リポジトリの完全な複製を作成する git clone とは異なり、すべてのワークツリーは同じ中央の .git 履歴を共有します。
ワークツリーを作成すると、Git はファイル用の新しいディレクトリを生成します。 このディレクトリには、完全な .git フォルダーではなく、元のリポジトリへのプレーンテキストパスを含む .git ファイルが格納されます。 これにより、独立した作業環境を維持しながら、すべてのワークツリーが同期された状態を保つことができます。

Git ワークツリーの詳細については、 公式の Git ドキュメント(英語)を参照してください。
Git ワークツリーの作成と管理
プロジェクトにすでに複数の Git ワークツリーが存在する場合、 ワークツリー タブはデフォルトで表示されます。 そうでない場合は、 をクリックして ワークツリー を選択することで、 Git ツールウィンドウ Alt+9 内で開くことができます。

Git ワークツリーを作成する
Git ツールウィンドウ Alt+9 で、 ワークツリー タブを開き、
新しいワークツリー をクリックします。
あるいは、メインメニューで を選択します。
これにより、 新しいワークツリー ダイアログが開きます。

新しいワークツリー ダイアログで、以下を指定します。
ブランチより: ソースブランチを選択してください。
同じブランチを 2 つのワークツリーで同時にチェックアウトすることはできませんのでご注意ください。 現在チェックアウトされているブランチを新しいワークツリーのソースとして使用したい場合は、そこから別のローカルブランチを作成し、新しいワークツリーで使用できます。 そのためには、 新規ブランチ オプションを選択してください。
プロジェクト名: 新しいワークツリーの名前。
ロケーション: ワークツリーが保存されるディレクトリ。
ワークツリーの入れ子は避けてください。現在のプロジェクトのディレクトリ内にワークツリーを作成することは推奨されません(例:
Projects/mainProject/linkedWorktree)。 現在、CLion はこのようなプロジェクトをマルチルートプロジェクトとして誤認し、ワークツリーの統合が機能しなくなります。
新しいワークツリーを作成すると、CLion はそれを別のプロジェクトとして開きます。
異なるワークツリーを切り替える
ワークツリーは一度開くと、他のプロジェクトと同様に動作します。 メインメニューの「最近のプロジェクト 」またはウィンドウヘッダーのツールバーにあるプロジェクトウィジェットからアクセスできます。
CLion 以外で作成されたものも含め、ワークツリーに切り替えるには次の手順を実行してください:
Git ツールウィンドウ Alt+9 で、 ワークツリー タブを開きます。
あるいは、メインメニューで を選択します。
対象のワークツリーをダブルクリックします。

ワークツリーは、システム設定に応じて、新規ウィンドウまたは既存のウィンドウで開きます。
デフォルトでは、 ワークツリー タブはアクティブなワークツリーのステータスを表示しません。 ステータスインジケーターは、ワークツリーが特定の状態になるとリストに表示されます:
ワークツリーを削除する
ワークツリーを削除する前に、すべての変更がコミットされていることを確認してください。
Git ツールウィンドウ Alt+9 で、 ワークツリー タブを開きます。
あるいは、メインメニューで を選択します。
ワークツリーを選択し、
削除 をクリックします。
ワークツリーをクリーンアップ
IDE で ワークツリーを削除せずにワークツリーディレクトリを手動で削除すると、Git はファイルが存在しないことを検出し、そのワークツリーを クリーンアップ可能 としてマークします。 クリーンアップを行うと、存在しなくなったワークツリーの内部 Git レコードが削除され、それに関連付けられたブランチが解放されます。
Git ツールウィンドウ Alt+9 で、 ワークツリー タブを開きます。
あるいは、メインメニューで を選択します。
クリーンアップ をクリックします。
トラブルシューティング
- CLion は別々のワークツリーを同じプロジェクトとして扱う
ファイルがリポジトリにコミットされた場合に発生する可能性があります。 このファイルには一意の
ProjectIdが含まれているため、新しい Git ワークツリーを作成すると、その ID が重複します。 その結果、IDE は同じ ID を持つことによって混乱し、両方のディレクトリを単一プロジェクトとして誤認します。解決方法:
CLion でプロジェクトを閉じます。
Git ワークツリーディレクトリに移動し、
workspace.xmlファイルを削除します(あるいはファイルを開いてProjectId行のみ削除することもできます)。IDE でプロジェクトを再度開いて、新しい一意の ID を生成するようにしてください。
再発を防ぐため、 がリポジトリの
.gitignoreファイルに追加されていることを確認してください。