CodexのWorktreeが3分でわかる:ローカル・Git・ブランチ・PR・デプロイの使い分け

ブログ兼説明資料 / Codex・Git初心者向け📅 2026-07-24由井 辰美 / AI相談
いつもの厨房、試作厨房、記録、確認、配送、店頭公開をつないだCodexとGitの流れ
作業場所を選び、記録し、確認してから本番へ届ける。全体の順番はパン作りと同じです。

「LocalとWorktreeは何が違うの?」「ブランチを作ったら保存されたの?」「コミットしたら公開されたの?」。

Codexで仕事を始めると、似た言葉が一度に出てきます。難しいのは操作より、それぞれが何を分けているのかです。

このページでは、町のパン屋さんにたとえて、作業開始から本番公開までを一本につなげます。

最初に覚えるのは「場所・安全・記録・相談・公開」の5つだけ Local / Worktreeは作業場所、sandboxは安全柵、Gitは記録、Pull Requestは公開前の相談、Deployはお客様に見せる公開作業です。

町のパン屋さんで、役割の違いをつかむ

通常の厨房と安全枠で分けた試作厨房を使い分けるイメージ
Localはいつもの厨房、Worktreeは別の試作厨房、Sandboxは作業範囲を守る安全枠です。

新しいパンを作る仕事で考えてみます。

Local=いつもの厨房普段使っているプロジェクトフォルダを、そのまま編集します。
Worktree=別に借りた試作厨房同じ店の材料とレシピを使いながら、別案を邪魔せず作れます。
Sandbox=厨房の安全柵入ってよい場所、触ってよい道具、外へ出てよい範囲を決めます。
Branch=「夏の新作」札どの改善案を進めているか分かる名前を付けます。
Commit=日付入りの試作記録その時点の変更を、説明つきで後から戻れる形に残します。
Pull Request=試食会公式メニューへ入れる前に、変更点を見せて相談・確認します。

最後に、採用したレシピを本店のメニューへ入れるのがMerge、実際に店頭へ並べるのがDeployです。

つまり、コミットしても、プッシュしても、Pull Requestを作っても、まだお客様には見えていません。

利用図:Codexの作業開始から本番公開まで

この図の重要点は、LocalとWorktreeは最初に選ぶ作業場所で、その後のGitの流れは同じということです。

似ている言葉を、何を分ける機能かで整理する

用語 何を分ける? やさしい意味 これだけでは起きないこと
Local 作業場所 いつものプロジェクトフォルダ 自動では保存・公開されない
Worktree 作業場所 同じGitリポジトリから作る別の作業場 バックアップや公開にはならない
Sandbox 権限・安全範囲 Codexが触ってよい場所の柵 コードの間違いまでは防げない
Branch 変更の系列 1つの改善案につける名前 ファイルのコピー場所そのものではない
Stage 次の記録範囲 コミットへ入れる変更を選ぶ まだ履歴には残らない
Commit 履歴 説明つきの保存地点 GitHubにも本番にも自動では届かない
Push 送信 ローカルの履歴をGitHubへ送る mainへの採用や本番公開ではない
Pull Request 相談・レビュー この変更をmainへ入れてよいか確認する場 作っただけでは採用されない
Merge 採用 変更をmainへ合流する デプロイ設定がなければ公開されない
Deploy 公開反映 実行環境やWebへ成果物を置く 正しく表示された保証にはならない
本番確認 完了確認 実際のURL・画面・APIで確かめる ここを飛ばすと「公開したつもり」になる

一番混同しやすい4組

1. LocalとSandboxは別

Localは「どのフォルダで作業するか」です。Sandboxは「その作業中にどこまで触ってよいか」です。

LocalでもWorktreeでも、Sandboxは使われます。たとえば「このプロジェクト内は編集できるが、別事業のフォルダや外部ネットワークは確認が必要」という安全枠を作れます。

2. WorktreeとBranchは別

Worktreeは実際の別フォルダです。Branchは変更履歴につける名前です。

Codexが作るWorktreeは、最初はBranchへつながっていない detached HEAD の状態になることがあります。作業を残してPushやPull Requestへ進むなら、Codex画面の「Create branch here」などでBranchを作ります。

同じBranchをLocalとWorktreeの両方で同時に開くことはできません。Gitが「どちらの作業場が正しいBranchなのか」を決められなくなるためです。

3. CommitとPushは別

Commitは自分のPC内の履歴です。Pushは、その履歴をGitHubへ送る操作です。

たとえるなら、Commitは厨房の試作ノートへ記録すること。Pushは、そのノートの写しを本部へ送ることです。

4. MergeとDeployは別

MergeはGitの履歴をmainへ採用すること。Deployは採用した成果物を実際のWeb環境へ置くことです。

VercelなどとGitHubを連携している場合は、mainへのMergeをきっかけに自動Deployされます。ただし、処理の失敗や古いキャッシュもあるため、最後は本番URLで確認します。

LocalかWorktreeかを、5問と3つの実例で決める

小さな修正は通常の厨房、大きな別案は試作厨房を選び、ローカル・プレビュー・本番を段階確認するイメージ
変更の大きさだけでなく、今の作業場がきれいか、別作業と混ざらないかで選びます。
  1. Gitリポジトリですか? いいえ → Local。 WorktreeはGitがないと使えません。
  2. Localに未コミットの変更がありますか? はい → Worktree。 別の仕事を混ぜないようにします。
  3. 同時に別の変更を進めますか? はい → Worktree。
  4. 変更が1ファイル程度で、すぐ戻せますか? はい → Localでも十分。
  5. いつもの開発サーバーやPC固有の設定でしか確認できませんか? はい → Local、またはWorktreeからLocalへHandoff。

迷った時の標準は、小さくてきれいな作業場ならLocal、混ざりそうならWorktreeです。

状態表示は「ローカル・プレビュー・本番」の3つに分ける

ローカル自分のPCだけ。例:http://localhost:3000
プレビュー確認用URL。関係者に見せられるが、本番とは別。
本番利用者が使う正式URL。実際に開いて確認して初めて完了。

「ビルド成功」「コミット済み」「Push済み」「プレビュー確認済み」は、すべて本番確認前の状態です。

完了報告では、次のように言い分けます。

  • ローカル:ビルドと画面確認まで完了
  • プレビュー:Pull Requestの確認用URLで動作確認済み
  • 本番:Merge・Deploy後、正式URLで画面と主要機能を確認済み

実例1:案内文の誤字を1か所直す

おすすめ:Local Localがきれいで、対象ファイルが1つなら、いつものフォルダで直します。差分を確認し、必要なテストをしてCommitします。チーム運用ならPushとPull Requestへ進みます。

Localに別作業の未コミット変更があるなら、誤字修正でもWorktreeへ分けたほうが安全です。変更の大きさだけでなく、今の作業場がきれいかで判断します。

実例2:トップページを別案で作り直す

おすすめ:Worktree 本線を壊さず、専用Worktreeと専用Branchで進めます。ローカル表示、PC幅、スマホ幅、リンク、フォームを確認してからPushします。Pull RequestのプレビューURLを関係者へ見せ、採用後にMergeします。

別案が不採用でも、いつものLocalはそのままです。これがWorktreeの大きな利点です。

実例3:AI相談の資料を追加する

このAI相談サイトでは、GitHubの main とVercel本番がつながっています。資料追加の安全な流れは次の通りです。

最新の origin/main
  ↓
資料追加専用 Worktree
  ↓
codex/add-codex-worktree-guide Branch
  ↓
content/blog に原稿を追加
  ↓
ローカルビルド・リンク・PC/スマホ確認
  ↓
Commit → Push → Pull Request
  ↓
Preview URLで確認
  ↓ CEO承認
Merge
  ↓
VercelへProduction Deploy
  ↓
https://ai-hub-jp.vercel.app の対象ページを確認

ここで大切なのは、Pull Requestを作った時点では「公開候補」、Preview URLは「確認用」、本番URLを確認して初めて「公開完了」と言うことです。

CodexとGitの基本操作を、一本道で覚える

パソコンで変更し、対象を選び、履歴に残し、GitHubへ送り、Pull Requestで確認する流れ
編集、Stage、Commit、Push、Pull Requestは、それぞれ役割が違う連続した工程です。

Codex画面での基本操作

Worktreeで始める

  1. 新しいCodexタスクを作る
  2. 入力欄の下で Worktree を選ぶ
  3. 開始元のBranchを選ぶ。通常は最新の main
  4. 作業を依頼する
  5. 残す変更なら Create branch here でBranchを作る
  6. 差分とテスト結果を確認する
  7. Commit、Push、Pull Requestへ進む

いつものIDEや開発サーバーで確認したい時は、Hand off でWorktreeからLocalへ移します。

Localで始める

  1. 最初に git status で作業中の変更を確認する
  2. 今回の変更と混ざらないことを確かめる
  3. 必要なら専用Branchを作る
  4. 小さく変更し、差分・テスト・画面を確認する
  5. Stage、Commit、Push、Pull Requestへ進む

コマンドで見るとこうなる

Codex画面だけでも操作できます。裏側を知りたい人向けの最小例です。

# 今の状態を見る
git status

# 最新のmainを開始点に、別の作業場とBranchを作る
git fetch origin main
git worktree add -b codex/new-guide C:\tmp\new-guide origin/main

# 今回の変更だけ選び、履歴に残す
git add content/blog/new-guide.md
git commit -m "docs: add Codex worktree guide"

# GitHubへ送り、Pull Requestを作る
git push -u origin codex/new-guide
gh pr create

Deployの方法はプロジェクトごとに違います。GitHubとVercelが連携していれば、BranchのPushでPreview、mainへのMergeでProduction Deployとなる構成が一般的です。

そのまま使えるCodex依頼文

安全な作業場所を選ばせる

このリポジトリのGit状態を最初に確認してください。
今回の作業と関係ない未コミット変更がある場合は、触らずに、
最新のorigin/mainを開始点とする専用Worktreeと専用Branchで進めてください。

完了時は次を分けて報告してください。
1. ローカルで確認したこと
2. プレビューで確認したこと
3. 本番で確認したこと

Commit、Push、Pull Request、Deployは同じ意味として扱わないでください。
外部公開や本番変更の前には確認を求めてください。

Pull Requestまで頼む

この変更を専用Branchで実装し、差分、テスト、PC幅、スマホ幅を確認してください。
関係ない変更は含めないでください。
確認後にCommitとPushを行い、変更内容と確認方法が分かるPull Requestを作ってください。
本番へのMergeとDeployはまだ行わないでください。

本番公開まで頼む

承認済みのPull Requestを本番へ反映してください。
Merge、Deploy、正式な本番URLでの確認まで進めてください。
完了報告には、推測ではない本番URL、確認したページまたはAPI、
未完了があれば理由と次の1手を書いてください。

勘違いを避け、人に説明して本番確認する

変更を人と確認し、パソコンとスマートフォンで表示を確かめ、本番の店頭公開まで確認するイメージ
公開候補を人と確認し、本番URLをPCとスマホで開いて、正しく見えて初めて完了です。

よくある勘違い

勘違い 正しくは
Worktreeなら絶対安全 作業は分かれるが、削除や外部操作の安全はSandbox・権限・確認が担当
Branchを作れば保存完了 Commitして初めて履歴になる
CommitすればGitHubにある Pushするまでは基本的に自分のPC内
Pushすれば本番に出る Branch設定やCI/CD構成による
Pull Requestを作れば採用済み まだ提案・確認中
Previewが動けば公開完了 本番URLは別。Merge後のProductionを確認する
Deploy成功なら確認不要 正しいページ、データ、権限、表示を本番で確かめる
Sandboxがあるから内容も正しい Sandboxは行動範囲の柵。内容の品質は差分・テスト・人の確認が必要

人に説明する60秒台本

CodexのLocalは「いつもの厨房」、Worktreeは「別の試作厨房」です。Sandboxは、どちらの厨房でもCodexが触ってよい範囲を決める安全柵です。Branchは新作につける名前札、Commitは日付入りの試作記録、Pushは記録をGitHubへ送ることです。Pull Requestは本店へ採用する前の試食会、Mergeは公式レシピへの採用、Deployは実際に店頭へ並べることです。だから、CommitやPull Requestではまだ公開されていません。最後に本番URLを開いて確認して、初めて完了です。

最低限の確認リスト

  • [ ] 今のLocalに、別作業の未コミット変更がないか見た
  • [ ] 小さな作業はLocal、混ざりそうな作業はWorktreeにした
  • [ ] 今回専用のBranch名を付けた
  • [ ] Stageへ関係ない変更を入れていない
  • [ ] Commitメッセージで「何を変えたか」が分かる
  • [ ] Push、Pull Request、Merge、Deployを別々に確認した
  • [ ] ローカル・プレビュー・本番を言い分けた
  • [ ] 本番では正式URLと主要機能を実際に確認した
  • [ ] 公開・課金・DB変更・外部送信は承認後に行った

公式情報