概要
同じリポジトリ内で複数のタスクを同時に進行させつつ、互いに干渉しないようにしたい場合は、並列コラボレーションを利用できます。Qoder CLI はいくつかの分離手段を提供しています。ワークツリーを使用して異なるタスクを独立した Git チェックアウトに配置し、バックグラウンドエージェント / タスクを使用して複数のサブタスクを並列で進行させ、サブエージェントを通じて複雑な作業を専門のサブエージェントに分割します。
これにより、各タスクが独自のワークスペースとコンテキストを持つようになり、複数のセッションが同じディレクトリを共有して変更を互いに上書きしてしまうことを防ぎます。
worktree 隔離
ワークツリーにより、各タスクは独立した Git ワークツリー内で実行され、互いに影響を与えません。--worktree を使用して起動します。
- 名前を指定しない場合、Qoder が自動的にワークツリー名を生成します。
- 新しく名前付きのワークツリーは
<repo>/.qoder/worktrees/<正規化された名前>配下に配置され、対応する一時ブランチが作成されます。 - 同名のワークツリーが既に存在する場合は、新たに作成せずそのまま再利用されます。
並列セッション
ワークツリーを利用することで、異なるタスクに対してそれぞれセッションを起動し、各自の独立したディレクトリで並列に実行できます。
バックグラウンドエージェントとサブエージェント
単一の複雑なタスクについては、複数のサブエージェントに分割してそれぞれ処理させ、サブタスクを並列で進行させることができます。/tasks を使用して、現在実行中のバックグラウンドタスクを確認します。
isolation: worktree を追加します。変更のないサブエージェントのワークツリーは終了後に自動的に削除され、変更がある場合は保持されます。
サブエージェントの作成、設定、オーケストレーションについては、サブエージェント を参照してください。
復元とクリーンアップ
セッション終了時、Qoder はワークツリーのパスとそのセッションを復元するコマンドを出力します。インタラクティブモードでの終了時には、ワークツリー内の未コミットファイルと新規コミットがチェックされます。変更のないワークツリーは自動的に削除でき、ローカルファイルやコミットが存在する場合は、保持または削除の選択を求められます。
手動でクリーンアップする必要がある場合は、以下を実行します。
ヒント
- 1タスク1ワークツリー:互いに関連のないタスクはそれぞれのワークツリーに配置し、変更が交錯するのを防ぎます。
- ローカルファイルが必要な場合:新しいワークツリーはクリーンなチェックアウトであり、デフォルトでは未追跡ファイルを含みません。
.envなどのファイルをコピーする必要がある場合は、リポジトリのルートディレクトリにある.worktreeincludeで宣言します。詳細は タスクの実行 を参照してください。 - 適時クリーンアップ:タスクの完了およびマージ後は、不要になったワークツリーと一時ブランチを削除し、リポジトリを整理された状態に保ちます。