本文へ移動
AI Dev Lab Japan AI開発ツール、AIコーディングエージェント、M...

Codex Worktreesで並列作業する前に決めること

Codex Worktreesで並列作業する前に決めることの要点をタイトルと確認軸で示すアイキャッチ

3行まとめ

このテーマをもう少し広げて見るなら、AI Coding Loop Engineering入門:Plan・Implement・Test・ReviewをAgent任せにしすぎない設計Codex Skillsをチームで入れる前に:サードパーティSkill・MCP依存・権限を監査する も合わせて確認してください。Worktreeへ作業を逃がす前に、Plan、Implement、Test、Reviewのどこを人間が確認するかを決められる

VisualWorktrees運用の5分類場所、引き継ぎ、branch、初期化、片付けを分けます。
Local

普段の作業。

Worktree

独立作業。

Handoff

移動する。

Branch

残す。

Cleanup

片付ける。

background作業を増やす前に、最後にどこで確認するかを決めます。

  • Codex Worktreesは、同じproject内で独立した作業場所を作り、Localの作業を邪魔せずにbackground作業を進めるために使います。
  • Worktreeで始める前に、開始branch、setup scripts、Handoff先、branch化する条件、消す前の確認を決めます。
  • 「並列にできる」だけで進めると、branch制約、未追跡file、Localでの確認漏れで後から詰まります。

この記事では、OpenAI公式のCodex app Worktrees、Features、Local environments、Permissions、AGENTS.md docsを確認し、2026年6月1日時点の情報として整理しています。Codex appのWorktrees、Handoff、Local environments、Git連携は更新され得るため、導入前に最新docsと手元のGit運用を確認してください。

この記事でわかること

Visual並列作業前の判断Worktreeへ渡す前に決めることです。
Scope

任せる範囲。

Base

開始branch。

Setup

初期化。

Exit

戻し方。

worktreeは作業場所なので、開始条件と終了条件をセットで決めます。

  • Codex appでLocalとWorktreeを分ける判断軸
  • Worktreeを使う前に決める開始branchと作業範囲
  • HandoffでWorktreeとLocalを行き来する時の注意点
  • branch化、detached HEAD、同じbranchを複数場所で使えない制約
  • setup scriptsとActionsを用意する理由
  • Worktreeを消す前に残すべき情報

Codex appのWorktrees docsでは、Worktreeを使うと同じprojectで複数の独立taskを並べて進められると説明されています。Git repositoryでは、automationsも専用のbackground worktreeで動き、進行中のLocal作業と衝突しにくくなります。

一方で、Worktreeは魔法の隔離箱ではありません。Git worktreeを使う以上、branch、checkout、未追跡file、依存関係、実行環境の問題が残ります。Codexに任せる作業場所を増やすほど、最後にどこで確認し、どう残し、どう片付けるかを先に決める必要があります。

Codexで定期実行を作る場合のbackground作業は、公開済み記事のCodexで定期実行を作る前に決めることでも扱っています。この記事では、Worktreeそのものの運用に絞ります。

前提知識

Visual公式docsで見る範囲仕様確認に使う情報です。
項目内容見方
Worktrees並列作業。
Featuresapp全体。
Local envsetup。
Permissions権限。
AGENTS.mdrepo指示。

Worktreeだけでなく、setupと権限も一緒に見ます。

OpenAI公式のWorktrees docsでは、Codex appのWorktreeはGit repositoryで動くと説明されています。Git worktreeを使うため、repositoryの別checkoutを作り、複数branchや複数taskを並列に扱える仕組みです。

Features docsでは、Codex appが複数projectやthreadを扱い、built-in worktree supportを持つdesktop体験として説明されています。新しいthreadではLocalかWorktreeを選び、Localは普段のprojectで直接作業し、Worktreeは変更を通常projectから分離します。

Local environments docsでは、worktreeのためのsetup stepsやprojectのActionsを設定できることが説明されています。WorktreeはLocalと別directoryで動くため、依存関係やbuild済みfileが足りない場合があります。setup scriptsは、新しいworktree作成時に自動で走る初期化として使えます。

公式情報で確認する範囲

確認先見ること
Codex app WorktreesWorktree、Handoff、branch、削除後の扱い
Codex app FeaturesLocal/Worktreeの位置づけ
Local environmentssetup scripts、Actions
Permissionsfilesystem、network、profile
AGENTS.mdrepo固有の作業指示

注意点

この記事は、Git worktreeそのものの詳しい解説ではありません。Codex appでWorktreeを使う時に、作業を壊さないための判断を整理します。

また、WorktreeはGit repositoryで使う機能です。公式docsでは、version controlされていないprojectではautomationsがproject directoryで直接動くと説明されています。Gitがないprojectを同じ運用で扱わないようにします。

まずLocalとWorktreeを分ける

Visual作業場所の選び方foregroundとbackgroundを分けます。
項目内容見方
Localすぐ確認。
Worktree独立変更。
Automationsbackground。
Non-git直接作業。

Git repositoryかどうかで、background作業の置き場所も変わります。

Codex appでは、新しいthreadでLocalかWorktreeを選びます。Localは普段のprojectで直接作業します。WorktreeはGit worktreeを作り、通常の作業場所から変更を分けます。

作業向いている場所理由
いま開いている画面の小修正Localすぐ確認しやすい
大きめの調査WorktreeLocalの差分を汚しにくい
並列の実装案比較Worktree複数案を分けやすい
起動中serverに触る確認Local普段の環境で見られる
定期実行Worktreebackgroundで衝突しにくい

Worktreeを使う理由は、Localの作業を邪魔しないことです。すでに別の修正をしている時、Codexに別taskを進めさせたいならWorktreeが向いています。

Localが向く作業

Localが向くのは、普段のIDE、dev server、database、browser、環境変数、未commitの変更と一緒に確認したい作業です。たとえばUIの見た目確認、手元のserverでしか再現しないbug、ユーザーが今触っているbranchの小修正はLocalのほうが扱いやすいです。

Localで進めるなら、Codexの変更が今の差分に混ざります。そのため、作業前に未committed changesを把握し、触ってよいfileを決めます。

Localに残すべき条件

次の条件があるなら、最初からLocalを選ぶか、Worktreeから早めにHandoffします。

条件理由
1つしか起動できないserverを使うWorktree側で再現しにくい
手元のIDEで細かく読むHandoffしたほうが自然
未追跡fileが必要Handoffで移らない可能性がある
local secretが必要Worktreeへ渡す範囲を絞る必要がある

Worktreeが向く作業

Worktreeが向くのは、独立した調査、別案の実装、test追加、docs更新、Codex automationのようなbackground作業です。Localの差分を汚さずに試せるため、今の作業を止めずに進められます。

ただし、Worktreeを選ぶ時は開始branchを決めます。公式docsでは、main/master、feature branch、local changesを含むcurrent branchをbaseにできると説明されています。どの状態から始めたかを残さないと、後で差分の意味が分かりにくくなります。

Handoff前提で作業を設計する

Visual移動の流れthreadと変更を移します。
  1. 1Start

    Worktreeで開始。

  2. 2Inspect

    差分を見る。

  3. 3Handoff

    Localへ移す。

  4. 4Verify

    普段の環境で確認。

Handoffする前提なら、Localで見る理由も最初に決めます。

Worktreeで作業を始めても、最後までWorktreeで終えるとは限りません。Codex appにはHandoffがあり、threadとcodeをWorktreeとLocalの間で移せます。

移動使う場面
WorktreeからLocal普段のIDE、server、手動QAで確認したい
LocalからWorktreeforegroundを空けてbackground作業に戻したい
Worktreeのままbranch化そのままcommit、push、PRへ進めたい

Handoffを後から考えるのではなく、開始時に「最後はどこで確認するか」を決めます。Worktreeで完結するなら、setup scriptsとActionsを整えます。Localで確認するなら、Handoffする条件を決めます。

WorktreeからLocalへ戻す

WorktreeでCodexが差分を作った後、普段のIDEや既存dev serverで確認したい場合はLocalへHandoffします。公式docsでは、HandoffがGit operationsを扱い、threadとcodeを安全に移すと説明されています。

Localへ戻す前に見ることは、差分の範囲、未追跡file、test結果、branch状態です。特に .gitignore 対象のfileはHandoffで移らないため、生成物、local config、cache、sample dataを前提にしないほうが安全です。

LocalからWorktreeへ逃がす

Localで始めた作業を、後からWorktreeへ移すこともできます。これは、Codexに続きの作業をbackgroundで進めさせ、自分はLocalのforegroundへ戻りたい時に便利です。

ただし、LocalからWorktreeへ逃がす前に、いまのLocal差分をどこまで持っていくかを確認します。未整理の変更をそのまま渡すと、Worktree側の結果をreviewしにくくなります。

branch化とdetached HEADを理解する

VisualGitで詰まりやすい点branchとcheckoutの制約です。
Detached

初期状態。

Create branch

残す時。

One checkout

同じbranch不可。

PR

pushして開く。

同じbranchをLocalとWorktreeで同時に使わない設計にします。

公式docsでは、Codexが作るworktreeは既定でdetached HEADの状態になると説明されています。これは、複数worktreeを作ってもbranchを汚しにくくするためです。

Worktree上の作業を残したいなら、Create branch hereでbranch化します。その後、commit、push、GitHub PRへ進めます。

状態意味判断
detached HEADbranchに紐づかない作業状態試作や一時作業に向く
branch作成作業を名前付きで残すPRや共有へ進む
LocalへHandoff普段のcheckoutで続ける手動確認に向く
破棄作業を残さない明確に不要な時だけ

branchを作るタイミング

branchを作るのは、差分を残す価値が見えた時です。最初からbranchを増やすより、Worktreeで試し、採用するものだけbranch化するほうがbranch一覧が散らかりにくくなります。

ただし、複数人で確認する、PRを作る、CIを走らせる、後で戻る必要があるなら、早めにbranch化します。名前を付けた瞬間に、作業の責任とreview経路がはっきりします。

branch化前の確認項目

branchを作る前に、次を確認します。

項目見ること
差分依頼範囲を超えていないか
test最低限の確認が通っているか
baseどのbranchから始めたか
secretslocal fileが混ざっていないか
generated不要な生成物が入っていないか

同じbranchを複数場所で使わない

Gitは同じbranchを複数worktreeで同時にcheckoutできません。公式docsでも、worktree上でbranchを作った後、そのbranchをLocal checkoutで使おうとするとエラーになる例が説明されています。

この制約を避けるには、Localで確認したい時にHandoffを使います。WorktreeとLocalで同じbranchを無理に共有するのではなく、threadごと移すほうが分かりやすいです。

setup scriptsとActionsを用意する

Visual再現性の準備Worktreeでも確認できるようにします。
項目内容見方
Install依存を入れる。
Build初期確認。
Test共通task。
Run起動command。

Worktreeで検証するなら、初期化と確認commandをproject設定へ寄せます。

WorktreeはLocalとは別directoryで動きます。そのため、依存関係、build結果、local生成物、環境設定が揃っていないことがあります。Local environmentsのsetup scriptsは、この差を埋めるために使えます。

準備目的
installpackage install依存関係を揃える
buildinitial build生成物や型を確認する
testunit test最低限の動作確認
rundev server手動確認の入口
docsREADME確認setup手順を残す

worktreeの初期化

setup scriptsには、新しいworktreeが作られた時に必要な初期化を入れます。公式docsでは、TypeScript projectの例として依存installとbuildが挙げられています。

ただし、setup scriptsに何でも入れると遅くなります。最初は、依存install、型生成、初期buildなど、Worktreeで作業を始めるために必要なものに絞ります。

確認command

Actionsには、よく使う確認commandを入れます。test suite、build、dev server起動などです。CodexがWorktreeで作った差分を、その場で確認できるようにします。

Local environmentsの詳しい整理は、公開済み記事のCodexのLocal environmentsをチームで使う前に決めることで扱っています。Worktree運用では、setup scriptsとActionsを「background作業を検証可能にするもの」として見ます。

消す前に残すものを決める

Visual片付け前の確認失うものを分けます。
項目内容見方
Diff変更内容。
Branch残す作業。
Untracked未追跡。
Snapshot復元。

使い捨てにする前に、残す変更と捨てる変更を明確にします。

Worktreeは軽く作れる分、片付けも雑になりがちです。消す前に、残すものと捨てるものを分けます。

確認見ること
diff採用する変更があるか
branch名前を付けて残すか
test log後で見る必要があるか
untracked未追跡fileが必要か
thread summaryなぜ捨てるか残すか

公式docsでは、Codex-managed worktreeは軽量で使い捨ての性格があり、threadに紐づくと説明されています。削除後もthread履歴が残る場合があり、Codex-managed worktreeでは削除前にsnapshotを保存し、再open時に復元を提示することがあると説明されています。

snapshotと復元

snapshotがあるから何も考えなくてよい、とは考えません。復元に頼るより、採用する差分はbranchやPRへ残し、不要な差分は理由を残して捨てるほうがreviewしやすいです。

Worktreeを消す判断は、差分の価値、再現性、未確認事項で決めます。良い案だが未検証ならbranch化します。不要なら削除します。判断不能ならLocalへHandoffして人間が確認します。

未追跡file

Handoffや削除で見落としやすいのが未追跡fileです。公式docsでは、.gitignore に含まれるfileはHandoffで移らないと説明されています。

生成された画像、local config、temporary data、test artifact、database dumpなどを成果物に含めるなら、Gitで追跡するのか、別の場所に置くのか、本文やPRにどう残すのかを決めます。

導入初週の進め方

Visual1週間の導入順小さく並列化します。
  1. 1日目

    read-only調査。

  2. 2日目

    小さな修正。

  3. 3日目

    Handoff確認。

  4. 5日目

    setup整備。

  5. 7日目

    cleanup基準。

最初は大きな実装より、戻し方と確認方法を試します。

Worktree導入の最初の1週間は、大きな実装を並列に投げるより、戻し方と確認方法を試します。

やること見ること
1日目read-only調査をWorktreeで試すLocalを汚さないか
2日目小さなdocs修正を試すdiffが分かりやすいか
3日目Handoffを試すLocalへ戻せるか
5日目setup scriptsを整える初期化が足りるか
7日目cleanup基準を決める何を残すか

初週の成功条件は、作業量ではありません。Worktreeで始めた作業を、Local確認、branch化、PR、削除のどれかへ迷わず進められることです。

小さく始める例

最初に試すなら、次のような作業が扱いやすいです。

作業理由
READMEの古い手順を直す影響範囲が狭い
test追加だけ任せる差分をreviewしやすい
issue調査を並列で進めるLocalを汚さない
UI文言候補を比較する複数案を分けやすい
dependency updateの調査実装前にriskを見られる

大きなrefactor、migration、deploy、secretsを扱う作業は、Worktreeに慣れてからにします。

FAQ

Visualよくある迷いWorktree運用で詰まりやすい点です。
Local?

普段の確認。

Worktree?

独立作業。

Branch?

残す時。

Delete?

確認後。

迷ったら、どこで最終確認するかへ戻ります。

WorktreeならLocalの変更は絶対に壊れませんか?

壊れにくくなりますが、完全に考えなくてよいわけではありません。開始branch、local changes、Handoff、branch化、未追跡fileの扱いで混乱することがあります。作業場所だけでなく、戻し方まで決めます。

WorktreeのままPRまで進めてよいですか?

はい。Worktree上でCreate branch hereを使ってbranchを作り、commit、push、PRへ進める流れができます。ただし、Localで同じbranchを同時にcheckoutしようとしないようにします。

LocalへHandoffするのはどんな時ですか?

普段のIDE、既存server、local database、手動QAで確認したい時です。Worktreeで検証できるならそのまま進めてもよいですが、環境差が大きいならLocalへ戻すほうが安全です。

Worktreeを消す前に何を見ますか?

diff、branch化の必要性、test結果、未追跡file、thread summaryを見ます。採用する変更はbranchやPRへ残し、不要な変更は削除理由を残します。

AutomationsとWorktreeはどう関係しますか?

Git repositoryでは、Codex appのautomationsは専用background worktreeで動くと説明されています。定期実行やbackground作業を増やすなら、Worktreeの初期化、権限、cleanupを先に決めておくと運用しやすくなります。


次に読むなら

参照した主な情報源

更新履歴

Visual確認と更新の記録公式情報は更新されます。
  1. 2026年6月1日

    OpenAI公式Codex docsを確認して初版を作成しました。

導入時には最新のCodex app docsとGit運用を確認してください。

  • 2026年6月1日: OpenAI公式Codex docsを確認し、初版を作成しました。