ライフスタイル

Worktree とタスクの分離

Worktree は一つの Git リポジトリに別ブランチの作業場所を作ります。ファイルは分かれても DB、ポート、外部サービスは共有される場合があります。

読了目安 15 分 · 操作 20 分

作業の流れを表す図です。製品画面の画像ではありません。
画像:Mokaair (© Mokaair)
この記事の目次
  1. 目標と準備
  2. 手順1:個人データのない実習リポジトリを作る
  3. 手順2:第二の checkout を作る
  4. 手順3:ブランチの使用制限と成果保存
  5. Codex デスクトップでの対応
  6. 問題・片付け・検証

目標と準備

この段落の教材・資料:

Worktree は同一 Git の別 checkout で、ファイルとインデックスは別、コミットとブランチ情報は共通です。修正と調査の並行作業に適していても、安全なサンドボックスではありません。同じ DB、クラウド文書、ポートは競合し得ます。フォルダー名だけでなく編集担当、外部データ、稼働サービスも分けます。

手順1:個人データのない実習リポジトリを作る

自分の実習領域に空の worktree-lab を Windows Explorer、Finder、Linux のファイルマネージャーで作り、そこで端末を開きます。現在地と本番ファイルがないことを確認します。下のコマンドは新規実習リポジトリだけで実行し、作成者設定は local のまま --global を加えません。

3 OS の端末:新しい worktree-lab 内 · sh
git init -b main
git config user.name "Codex Learner"
git config user.email "learner@example.test"
git status --short

下記全内容で notes.md を作ります。固有 marker で Codex の説明によらず比較できます。UTF-8 の標準テキストと拡張子を確認後にコミットします。周辺ファイルを巻き込まないよう git add . ではなく notes.md だけを追加します。

worktree-lab/notes.md · markdown
# Worktree practice

Marker: LOCAL-A
実習端末:基準をコミット · sh
git add -- notes.md
git commit -m "Add worktree practice baseline"
git status --short
git branch --show-current

main と未コミット変更なしを確認します。失敗時はこのリポジトリの作成者設定を直し、組織の署名方針を教材のため変更しません。初回コミットがなければ HEAD の基準もないため先に完了します。同名があれば未使用名に揃えて置換し、既存を強制上書きしません。

手順2:第二の checkout を作る

worktree-lab 端末:同階層のコピーを作成 · sh
git worktree add -b codex/worktree-practice ../worktree-copy
git worktree list

新しいブランチ codex/worktree-practice で同じ階層に worktree-copy を作ります。対象が存在しないことを先に確認し、list の二つのパスが main と新ブランチであること、両ファイルが LOCAL-A であることを見ます。Windows でも実際に worktree-lab 内なら相対パスを使えます。で確認できます。

別窓で worktree-copy/notes.md の LOCAL-A だけを COPY-B に変え、元窓が LOCAL-A のままか確認して両状態と差分を見ます。同じ notes.md タブだけに頼らず全パスかルート名を表示して対象を区別します。

worktree-lab のまま両ディレクトリを比較 · sh
git status --short
git -C ../worktree-copy status --short
git -C ../worktree-copy diff -- notes.md

元の status は未変更、コピーは notes.md 変更、差分は marker 一行のはずです。これはファイル分離であり main への統合ではありません。両方変われば窓の対象が同じか、手作業で両方変えたか確認し、原因が分かるまでコミットしません。

手順3:ブランチの使用制限と成果保存

失敗確認:main は元ディレクトリで使用中 · sh
git -C ../worktree-copy switch main

Git は同じブランチを二箇所で使うことを拒み、main が使用中と報告します。両方とも元のブランチのままなのが保護動作で、強制や制限回避を加えません。確認済み marker をコピー側ブランチへコミットし、元から比較します。成果はローカル内にあり GitHub へ自動送信されません。

コミット前の COPY-B で削除拒否も確認します。worktree list の完全パスで ../worktree-copy が本篇のコピーと確認してから下を実行します。Git は未保存変更を理由に拒否し、フォルダーと COPY-B が残るはずです。既にコミットした場合は追加変更を作らず省略します。確認後に次のコミットへ進み、--force は使いません。

元フォルダー:コミット前の削除拒否を確認 · sh
git worktree list
git worktree remove ../worktree-copy
git -C ../worktree-copy status --short
元の端末:コピー成果を保存してブランチを比較 · sh
git -C ../worktree-copy add -- notes.md
git -C ../worktree-copy commit -m "Change isolated practice marker"
git -C ../worktree-copy status --short
git diff main...codex/worktree-practice -- notes.md

Codex デスクトップでの対応

Git の新規タスクで Worktree と開始ブランチを選び、要求を送ります。未コミット変更を含める場合は対象作業に属するか確認し、無関係の個人資料を混ぜません。管理型は当初 detached HEAD の場合があり、長期保存には見出しの Create branch here でブランチを作って検証・コミットします。

同じタスクとコードを Local へ移すには Hand off を使い、移動後に場所、ブランチ、ファイルを確認します。移動は main への統合や公開ではありません。各 OS の利用可能なバージョンで操作し、Linux に項目がなければ Git 手順との差を記録します。モバイルの Remote でも worktree と Git はホストに残ります。

リソース自動分離確認事項
追跡ファイル・インデックスあり編集中の実際のパス
コミット・ブランチ共通各 checkout のブランチ
依存関係・ビルドキャッシュ通常は個別準備プロジェクト準備手順
ローカルポート保証なし各プレビューのポート
DB・外部サービス保証なし教材とアカウント範囲

問題・片付け・検証

設定不足は .gitignore と README から実習用を準備し、正式 .env の丸ごとコピーで済ませません。管理型ローカルの .worktreeinclude は今回の手動 Git には適用されないため公式資料とを確認します。port 競合は別番号と URL を記録し、他人のサービスを止めません。

コピーを使うウィンドウ、端末、プレビューを閉じ、元に戻って list の全パスとコピーが変更なしであることを確認します。成果が codex/worktree-practice にコミット済みになってから削除し、未コミットがあれば保存し、拒否されても --force を加えません。元のリポジトリとコミット済みブランチを残し、今回のコピーだけを除きます。

元ディレクトリ:経路照合・コピー除去・成果確認 · sh
git worktree list
git -C ../worktree-copy status --short
git worktree remove ../worktree-copy
git worktree list
git show codex/worktree-practice:notes.md

list は元だけ、main は LOCAL-A、ブランチの git show は COPY-B のままであることを確認します。分離状態とブランチ使用拒否の記録を合わせ、作成・分離・保存・削除を検証します。Git テストとデスクトップ Handoff は別記し、未操作 OS は公式確認とします。次はです。

27. Worktree とタスクの分離 — 作業の流れを表す図です。製品画面の画像ではありません。 Repository → Worktree A / B → Integration
27. Worktree とタスクの分離 — 作業の流れを表す図です。製品画面の画像ではありません。 Repository → Worktree A / B → Integration · 画像:Mokaair (© Mokaair)
詳しい説明を読む

Repository to Worktree A / B to Integration

総目次へ

  • ライフスタイル

    Codex 学習ガイド:全記事の目次

    導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。

  • ライフスタイル

    実践:小さな Web サイトを作る

    brief.md から Small Steps のタスクサイトを計画・制作し、追加、完了、削除、絞り込み、ローカル保存を実装します。HTML、CSS、データ関数、画面イベント、テストを分け、Node とブラウザーで検証して再起動・復元の手順を残します。

  • ライフスタイル

    使用量と効率:やり直しを減らす

    条件、モデル設定、時間、成果を記録し、不要な再試行と過剰な文脈を減らします。

  • ライフスタイル

    既存のコードベースを理解する

    読み取りで入口、データの流れ、テストを探し、ファイルに基づくプロジェクト地図を作ります。

最新の旅の情報・ガイド

出典

ライフスタイル