# Codex worktree：2つ目のタスク用の別の作業コピー

> Codex CLI 0.155.1の作業コピー：実験的なworktreeフラグ、ソースのHEAD、新しいフォルダーの確認、結果の保持、安全な削除。

Source: https://ailoot.ai/blog/ja/codex-worktree-separate-task/
Canonical: https://ailoot.ai/blog/ja/codex-worktree-separate-task/
Language: ja
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-086
Revision: sha256-1887194873a07cef44604e3319a7cc5084716e27e0faab75df785f49a6b77d21


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway for this section">

重要なポイント

Codex CLI バージョン0.155.1では、`codex --enable worktrees --worktree`を使って、2つ目のタスク用の別の作業コピーを作成できます。この機能は実験的で、デフォルトでは無効です。事前に有効化していない場合、`--enable worktrees`なしで`--worktree`を指定すると、Codexは起動を拒否します。コピーは元のプロジェクトの最新のコミット（HEAD）から、未コミットの変更を含めずに作成され、名前付きブランチが紐付いていないdetached HEAD状態になります。

</div>

たとえば、Codex CLIであるモジュールをリファクタリングしているときに、別のモジュールのテストを書くという2つ目のタスクが発生したとします。同じフォルダーで2つ目のセッションを開くのは危険です。1つ目と2つ目のタスクの変更を混同しやすいためです。`--worktree`フラグを使うと、2つ目のタスク用に同じプロジェクトの別フォルダーが作成され、1つ目の作業には手を加えずに済みます。

エージェントとの並行作業に役立つ実践的な資料：[Ailootのドキュメント](https://ailoot.ai/docs/)。



## `--worktree`で作成されるものと、コピーに含まれるファイル

Gitの用語では、worktreeは同じリポジトリに紐付いた追加の作業フォルダーです。コミット履歴を共有しつつ、ディスク上には独自のファイル一式を持ちます。Codex CLI 0.155.1では、`--worktree`フラグはこのGitの仕組みを使って別フォルダーで新しいエージェントセッションを開始し、1つ目のタスクがすでに実行されているフォルダーには手を加えません。

新しい作業コピーには、起動時に元のプロジェクトのHEADが指しているコミットのファイルが含まれます。つまり、エディターで最後にファイルを保存した時点ではなく、最新のコミットの内容です。このコマンドは未コミットの変更や新しいファイルを移しません。エディターで保存することとGitでコミットすることは同じではありません。2つ目のタスクを起動した時点で1つ目のフォルダーに未コミットの変更が残っている場合、その変更はそのフォルダーだけに残ります。

これはリポジトリ全体のバックアップでも、コンピューター全体の分離でもありません。同じプロジェクトの2つ目の作業フォルダーであり、同じブランチとコミット履歴にアクセスできます。別のツールで使える同様の仕組みについては、[Claude Codeとgit worktree：並行タスク](https://ailoot.ai/blog/ja/claude-code-git-worktree/)を参照してください。

## 準備：バージョン、プロジェクトの信頼、コミット

開始前に3点を確認してください。コマンドは元のプロジェクトのフォルダーから実行します。

まず、Codex CLIのバージョンを確認します。この手順はバージョン0.155.1を対象としています。他のバージョンでは、フラグの動作を個別に確認してください。

```bash
codex --version
```

次に、HEADが既存のコミットを指しているローカルGitプロジェクトが必要です。つまり、リポジトリに少なくとも1つのコミットが含まれていなければなりません。そうでないと、コピー元がありません。

3つ目に、ソースが信頼されている必要があります。プロジェクトが明示的に信頼されていないものとしてマークされている場合、コピーが作成される前に`--worktree`での起動が失敗します。Codex CLIをセットアップしたばかりの場合は、基本的な準備について[Codex（OpenAI）：概要と使い始め方](https://ailoot.ai/blog/ja/openai-codex-install/)で説明しています。

起動前に、このリポジトリにある既存の作業コピーの一覧を確認してください。起動後に比較するためにも使えます。

```bash
git worktree list
```

別々のフォルダーを使うと、タスクを切り分けて管理できます。エージェントとの作業全般については、[Ailootのドキュメント](https://ailoot.ai/docs/)にある実践的な資料が役立ちます。



## 手順：2つ目のタスク用に別のコピーを起動する

1.  ### 実験的な機能を有効にして、別のコピーでセッションを開始する

    1つ目のタスクにすでに取り組んでいる、元のプロジェクトのフォルダーからコマンドを実行します。

    ```bash
    codex --enable worktrees --worktree
    ```

    期待される結果：Codexが現在のHEADからプロジェクトの新しい作業コピーを作成し、その中でエージェントセッションを開きます。コピーは、名前付きブランチが紐付いていないdetached HEAD状態です。バージョン0.155.1では、フラグはこのように動作します。

2.  ### 元のプロジェクトで別のターミナルを開き、作業コピーを再度一覧表示する

    ```bash
    git worktree list
    ```

    期待される結果：出力に新しいコピーのパスとdetached HEADを示すマーカー（または、ブランチがあればそのブランチ）が追加されます。この一覧はGitがコピーを登録したことを示しますが、エージェントがタスクを完了したことまでは確認できません。ファイルがあることを確かめるには、一覧に表示されたパスのフォルダーを開いて中身を確認してください。

## 結果を確認して作業を保持する方法

新しいコピーで2つ目のタスクが終わったら、結果を別途保存して移す必要があります。`--worktree`コマンドは変更をメインブランチにマージせず、結果を自動的に移すこともありません。コピーはdetached HEAD状態のままなので、その中でコミットしても、それだけでは新しいブランチは作成されません。コミットを保持する必要がある場合は、コピーのフォルダーを削除する前に、ブランチに紐付けるか、メインプロジェクトに移してください。

結果を保持するまでは、コピーのフォルダーを削除しないでください。作業フォルダーがクリーンであることを確認しても、必要なコミットを保持したことにはなりません。コミットにブランチが紐付いていない可能性があるためです。

異なるツールで複数のタスクを同時に進める場合は、互いに干渉しないよう、あらかじめ方法を計画してください。2つのエージェントを一緒に使う方法については、[Claude CodeとCodexを併用する](https://ailoot.ai/blog/ja/claude-code-codex-together/)で説明しています。

## 起動が中断された場合：コピーの場所を確認する

`--worktree`での起動は、いくつかの理由で失敗することがあります。

- 機能が事前に有効化されておらず、起動コマンドに`--enable worktrees`が含まれていない：Codexは`--worktree`フラグでの起動を拒否します。
- 間違ったフォルダーにいる、またはコミットがない：現在のフォルダーがGitリポジトリでないか、まだコミットが1つも含まれていない場合、コピー元がありません。
- プロジェクトが明示的に信頼されていないソースとしてマークされている：Codexは`--worktree`でのセッション開始を拒否します。まず、正しいプロジェクトを開いていることを確認してください。信頼状態を自動的に変更しないでください。

新しく作成されたコピーにセッションを接続できなかった場合、たとえばプロセスが中断された場合でも、作業フォルダーは自動的には削除されません。まず作業コピーの一覧を確認し、何かを削除する前に、そのコピーをまだ使用しているCodex CLIセッションがないことを確かめてください。

```bash
git worktree list
```

フォルダーを開いて、必要な変更を保存してから削除してください。エージェントセッションの起動が完了しなくても、コピーが残っていることがあります。コピーが存在し、もう必要なく、どのセッションも確実に使用していない場合は、元のリポジトリから`git worktree remove`を実行し、フォルダーのパスを指定して手動で削除してください。`--force`は追加しないでください。コピーに未コミットの変更や未追跡ファイルが含まれている場合、コマンドは削除を拒否します。拒否された場合は、安全策を無効にせず、フォルダーの中身を確認してください。

Codex CLIを更新したら、再度`codex --version`を確認し、`git worktree list`でもう一度確認してください。実験的なフラグはバージョンによって動作が異なる場合があります。





その他の資料とツール：[Ailoot](https://ailoot.ai/)。

## Codex worktree：2つ目のタスク用の別の作業コピー | Ailoot：よくある質問

### 2つ目のworktreeにも、未保存・未コミットの編集は入りますか？

いいえ。記事のCLIバージョンでは、元リポジトリのHEADコミットから始まります。未コミット変更と新規ファイルは元のフォルダーに残るため、エディターで保存するだけでは移りません。

### 変更のないdetached worktreeなら削除して安全ですか？

変更がなくても、名前付きブランチに属さないコミットがある場合があります。先にコミットを保全・移行し、使用中のセッションがないことを確認してから、安全策を強制回避せず通常のGit worktree削除を使ってください。


## Ailoot · 企業とそのプロジェクト群

Ailootは、蓄積した運営経験、幅広い顧客基盤、安定したサービス、継続的なKPI管理を基盤としています。

企業とそのプロジェクト群：数百万の顧客、毎月数十億規模の売上。

Ailootはこの運営経験を、お客様の製品、エージェント、アプリケーション、自動化でAI機能を利用するためのAPIアクセスに活かしています。
