コンテンツにスキップ
LinkedInX

dirty worktreeをAI間で安全に引き継ぐ手順

パステルのリング惑星と軌道を背景に「dirty worktreeをAI間で安全に引き継ぐ手順」を配置した記事カバー パステルのリング惑星と軌道を背景に「dirty worktreeをAI間で安全に引き継ぐ手順」を配置した記事カバー

この記事で学べること

  • Local・Worktree・Cloudで未コミット差分の見え方がどう変わるか
  • 作業の完成度に応じてコミット、パッチ、引き継ぎ文書を選ぶ基準
  • 差分の境界を安全に渡し、上書きや競合へ対処するチェックリスト

Codexの実行環境で引き継ぎ方法を変える

未コミット差分の引き継ぎ方法は、Codexを同じローカル作業場所、別のworktree、Cloudのどこで動かすかによって変わります。同じ場所なら差分は見えても所有範囲が曖昧になり、別環境ならローカル差分は自動で移りません。実行環境と作業の完成度を先に確認し、コミット、パッチ、引き継ぎ文書を選びます。

この記事では、「Local・別worktree・Cloudの違いに応じて、差分をどう保存・共有するか」という問いに焦点を当て、結論を分ける判断軸、適用条件、最初に確認する事項を扱います。

最後まで読むと、「Local・別worktree・Cloudの違いに応じて、差分をどう保存・共有するか」という問いを、自分の状況に照らして判断するための材料を持ち帰れます。

CodexのLocal・Worktree・Cloudでは差分の共有範囲が異なる

同じ作業場所、別worktree、Cloudの境界を示し、差分を安全に引き継ぐための地図

Codexのデスクトップ環境では、チャットの実行場所としてLocal、Worktree、Cloudを選べます。Localは現在のプロジェクトディレクトリを直接使い、WorktreeはGit worktree(同じリポジトリから分離した作業場所)へ変更を隔離し、Cloudは設定済みのリモート環境で動作します。[1]

実行環境未コミット差分の見え方引き継ぎで必要なこと
Local同じプロジェクトディレクトリの差分を参照できる既存差分と新しい作業範囲を明示する
Worktree元の作業場所とは別のworktreeで作業する移す変更と残す変更を先に分ける
Cloudローカルとは別のリモート環境で作業するローカル差分が自動で共有されると想定しない
この表は横方向にスクロールできます。キーボードでは、表にフォーカスして左右の矢印キーを使用してください。

重要なのは、「Codexなら常にGitHub上のコミットだけを見る」「同じPCならすべての差分を共有する」と一括りにしないことです。

同じローカル作業場所では差分が見える

CodexをLocalで同じディレクトリに接続した場合、Claude Codeなど別のツールが作った未コミット差分もファイルとして存在します。問題は差分が見えないことではなく、どの変更を保持し、どのファイルを次の作業で編集してよいかが曖昧になることです。

引き継ぎ前に、次の3つを確認します。

git status --short
git diff
git diff --staged
  • git status --short: 変更されたファイルと未追跡ファイルを一覧化する
  • git diff: まだステージしていない変更内容を確認する
  • git diff --staged: コミット候補としてステージした変更を確認する

同じファイルを複数のAIツールへ同時に任せる場合は、行単位で上書きが起きる可能性があります。ファイルの担当範囲を分けるか、片方の作業を止めてから引き継ぎます。

別worktreeやCloudへはローカル差分が自動で移らない

Worktreeは変更を別の作業場所へ隔離するための機能です。Codexの公式ドキュメントでも、複数の作業を分け、元のチェックアウトをクリーンに保つ用途が説明されています。[2] Cloudもローカルとは異なる実行環境です。[1]

そのため、元のローカル作業場所にだけ存在する未コミット差分が、別worktreeやCloudへ自動で渡るとは想定しません。移動先に必要な変更は、コミット、パッチ、または明示的なファイル共有など、選んだ実行環境で確認できる形にします。

保存方法は作業の完成度で選ぶ

状態保存方法注意点
レビュー可能なまとまりになっている作業ブランチへコミットする関係するファイルだけをステージする
同じローカルリポジトリで一時退避したいgit stash push -u を使うstashはCloudや別cloneへ自動共有されない
まだコミットに含めたくないが別環境へ渡したいパッチまたは対象ファイルを明示的に共有する適用先で差分内容を再確認する
複数ツールが同じ作業場所を使う現在の差分を残したまま担当ファイルを分ける同じファイルの並行編集を避ける
この表は横方向にスクロールできます。キーボードでは、表にフォーカスして左右の矢印キーを使用してください。

コミットする場合は、リポジトリ全体を一括で追加せず、対象を確認してから記録します。

git add <引き継ぐファイ>
git diff --staged
git commit -m "作業内容を表すメッセージ"

handoff文書には差分の境界を書く

agent-handoff(AI間で作業状況を引き継ぐためのメモや文書)には、会話の要約だけでなく、次の項目を残します。

  • 使用する実行環境: Local、Worktree、Cloudのどれか
  • 基準にするブランチとコミット
  • 未コミットの変更があるファイル
  • 完了済みの変更と未完了の変更
  • 次のツールが編集してよいファイル
  • 実行済みの検証と、まだ必要な検証

このリポジトリでは npm run agent:handoff でローカルの引き継ぎスナップショットを作れます。別のプロジェクトでは、同じ項目をIssue、PR説明、または引き継ぎテンプレートへ置き換えられます。

引き継ぎ完了のチェックリスト

  • Codexの実行環境をLocal・Worktree・Cloudから特定した
  • git status --short と差分内容を確認した
  • 引き継ぐ変更と手元に残す変更を分けた
  • 次のAIツールが編集してよいファイルを明示した
  • 別環境へ渡す変更を、そこで確認できる形に保存した
  • 未実行のテストやレビューをhandoff文書へ記録した

上書きや競合に気づいたときの対処

まず新しい編集を止め、git statusgit diff で現在の状態を保存します。コミット済みの変更やref(ブランチなどGitが指す位置)の移動は git reflog で追跡できる場合がありますが、通常の未コミット編集をreflogだけで復元できるとは限りません。stash、エディタのLocal History、バックアップも確認します。

git status --short
git diff
git reflog

復旧操作を始める前に、残っている差分を別名保存またはパッチ化し、さらに上書きしないことが重要です。

まとめ:実行環境を確認し、差分の所有範囲を明記して引き継ぐ

dirty worktreeの引き継ぎでは、最初に実行環境を分けます。同じLocal環境なら未コミット差分は見えますが、編集範囲の衝突を避ける必要があります。別worktreeやCloudでは、ローカル差分が自動で共有されると想定せず、必要な変更を明示的に保存します。実行環境、基準コミット、変更ファイル、担当範囲、未実行の検証をhandoff文書へ残すことが、再利用できる引き継ぎ手順になります。

参考文献

  1. OpenAI, Codex environments, ChatGPT Learn
  2. OpenAI, Worktrees, ChatGPT Learn

最新のリリースやアップデートの詳細は、公式サイト・公式ドキュメントを確認してください。