ライフスタイル
Git・ブランチ・差分・復元
Git は履歴、ブランチは変更のまとまり、diff は差分を扱います。会話の再開ではファイルは復元されません。
読了目安 15 分 · 操作 30 分

Codex 学習目次に戻るCodex 学習ガイド:全記事の目次導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。記事全文を読む
目標と準備
端末パスターミナルのパスとプロジェクトルートWindows、macOS、Linux で練習フォルダーを作り、現在位置、相対パス、絶対パスを区別します。記事全文を読むを確認します。作業ツリー、次の commit 用 index、記録版は別状態です。ブランチは履歴の線で、未コミットのコピーではありません。別場所はworktreeWorktree とタスクの分離Worktree は一つの Git リポジトリに別ブランチの作業場所を作ります。ファイルは分かれても DB、ポート、外部サービスは共有される場合があります。記事全文を読むを使い、ブランチを保存完了としません。
手順1:独立した基準を作る
他プロジェクト外の codex-git-lab に expected 5ファイルを置き、Windows PowerShell は Get-Location、macOS/Linux は pwd で現在地を確認し、git --version を実行します。なければ公式 OS 別導入を行い端末を開き直します。既存仕事用リポジトリでこの初期化をしません。
git init -b main
git config user.name "Practice Learner"
git config user.email "learner@example.invalid"
git add index.html style.css app.js core.mjs core.test.mjs
git diff --cached --name-only
git commit -m "Add practice baseline"
git status --short
逐行実行し、最初の5ファイルと commit 後の無変更を確認します。名前と予約ドメインは教材内設定で、GitHub 認証や global ではありません。署名・hooks の既存要件があれば従うか障害を記録し、全体方針を変更しません。
手順2:ブランチで区別できる二変更
git switch -c codex/title-lab
git branch --show-current
codex/title-lab を確認後、index.html の h1 にある Make room for one small task. だけを Plan one useful step. にし、CSS 末尾へ次のコメントを加えて別の未確定作業を模します。成果はタイトルで、CSS は保持しつつタイトル commit に混ぜません。両方とも教材です。
/* KEEP-MY-NOTE */
git status --short
git diff -- index.html style.css
差分の旧行・新行と周辺を見て、h1 と CSS コメントだけか確認します。ファイル数だけで判断しません。次の読取り依頼で既存作業と対象を特定し、全差分 commit は求めません。
Inspect this lab's current branch, status and diff without editing, staging or committing. The intended change is only the h1 title in index.html. The KEEP-MY-NOTE comment in style.css represents separate work and must be preserved. Explain what belongs in the title commit and what must stay outside it.
手順3:一ファイルをステージして復元を試す
git add index.html
git diff --cached --name-only
git diff --cached -- index.html
git diff -- style.css
同じファイルの2つの版を比較します。git add を再実行せず、エディターでステージ済みの Plan one useful step. だけを Compare one useful step. に変更します。次の4行で作業ツリー、インデックス、HEAD の違いを確認します。
git status --short
git diff --cached -- index.html
git diff -- index.html
git show :index.html
status は MM index.html と未ステージの style.css を示すはずです。これは競合ではありません。Git status 公式説明に従うと、この場合は1列目の M が HEAD に対するインデックスの変更、2列目がインデックスに対する作業ツリーの変更です。cached diff は Make → Plan、通常の diff は Plan → Compare、show :index.html はステージ済みの Plan を示します。この時点の通常のコミットに Compare は自動で入りません。
続いて元の順序で2種類の restore を実行します。1行目はステージ解除だけなので Compare はディスクに残ります。2行目は、基準の旧タイトルに戻ったインデックスから index.html を復元します。1行目を飛ばすと、worktree restore の復元元はステージ済みの Plan のままです。Git restore 公式説明にこの既定の復元元の違いがあります。破棄する対象が練習用タイトルであることを確認し、CSS は保持します。
git restore --staged -- index.html
git restore --worktree -- index.html
git status --short
git diff -- style.css
CSS だけ変更、h1 復元、コメント保持を確認します。自分の取消しで別作業を消しません。--staged は実ファイル編集を捨てず、--worktree は指定ファイルを復元元で上書きするため別物です。
手順4:限定 commit と履歴を残す撤回
タイトルを再変更して index.html だけステージし差分確認します。commit はタイトルだけ、CSS は未確定のままです。show で実際の対象を確認し、成功終了だけで範囲正解としません。
git add index.html
git diff --cached --name-only
git diff --cached -- index.html
git commit -m "Update practice title"
git show --format=short --name-only HEAD
git status --short
撤回前に作業ツリーを確認します。残る教材 CSS コメントの保持を検証後、今回は明示的にその練習を終えて最初の命令でそのファイルだけ戻します。無変更と HEAD のタイトル commit を確認してから revert します。実作業の別の変更には流用しません。
git restore --worktree -- style.css
git status --short
git log -1 --oneline
git revert --no-edit HEAD
git log -3 --oneline
git status --short
revert は元変更を残して逆向き commit を追加します。旧 h1、3履歴、無変更が期待です。衝突は状態を読み、強制選択をしません。未完了 revert の取消しは git revert --abort の手順で行い再確認します。
命令比較、対処と受入
| 目的 | 命令 | 確認 |
|---|---|---|
| 未ステージを見る | git diff | 作業ツリーと index |
| 次の commit を見る | git diff --cached | index と HEAD |
| ステージ解除 | git restore --staged -- index.html | 編集は残る |
| 指定未確定変更を捨てる | git restore --worktree -- index.html | 元とパスを先に確認 |
| commit 撤回 | git revert --no-edit HEAD | 対象と無変更を確認、履歴追加 |
分岐不在は repository を確認し、不意なファイルを add . でまとめません。一ファイルに変更が混ざると全体ステージに全て入るため、各差分を理解して処理します。CSS 除外、二つの restore、revert 履歴が受入条件です。図1状態、2限定確定、3復元確認。次はテストと PRテスト・コードレビュー・PRテストは条件下の動作、レビューは変更の問題、PR は統合候補を扱います。テスト成功、承認、マージは別の状態です。記事全文を読むです。
Codex 学習目次に戻るCodex 学習ガイド:全記事の目次導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。記事全文を読む
詳しい説明を読む
Branch to Diff to Commit
同じテーマの記事
ライフスタイル
Codex 学習ガイド:全記事の目次
導入と最初のタスクから MD の指示、高度な連携まで、60 レッスン・十単元を予定しています。習熟度、環境、目的、コマンドで次の記事を探せます。未公開の記事には状態を表示します。
ライフスタイル
実践:小さな Web サイトを作る
brief.md から Small Steps のタスクサイトを計画・制作し、追加、完了、削除、絞り込み、ローカル保存を実装します。HTML、CSS、データ関数、画面イベント、テストを分け、Node とブラウザーで検証して再起動・復元の手順を残します。
ライフスタイル
使用量と効率:やり直しを減らす
条件、モデル設定、時間、成果を記録し、不要な再試行と過剰な文脈を減らします。
この記事を引用している記事
最新の旅の情報・ガイド

ガイド東京
東京ではどのエリアに泊まる?新宿・上野・東京駅・渋谷・浅草・池袋・銀座の七エリア比較。空港アクセス、宿泊税、荷物配送も解説
東京ではどのエリアに泊まる?新宿、上野、東京駅、渋谷、浅草、池袋、銀座の七エリアを同じ基準で比較。成田・羽田空港からのアクセス、利用できる路線、周辺にあるもの、街の雰囲気、向いている人を、比較表と山手線の概略図とともに紹介します。2026年9月に確認した東京都の宿泊税(2027年4月から3%)と、空港宅急便で荷物を送る際のルールも解説します。
- 予算
- ホテル

ガイド東京
東京の交通パスの選び方:Suica/Welcome Suica、Tokyo Subway Ticket、JR Passは買うべき?
初めての東京では、まず一人一枚ICカードで都度払い(Welcome Suicaはデポジット不要、有効期間28日)。一日に地下鉄へ4回以上乗るならTokyo Subway Ticketの72時間券2,000円を追加し、関西へ行かず東京だけならJR Passは必ず割高です。TOURIST PASMO、iPhoneのSuica、東京メトロ一日乗車券で乗れる路線・乗れない路線を決定チャートで比較。価格は2026年9月に確認。
- 交通
- 予算

ガイド東京
東京ディズニーランド・シー攻略:チケット料金、ファンタジースプリングス、ディズニー・プレミアアクセス(DPA)とスタンバイパスの使い方、初めてならどちらを選ぶ?
東京ディズニーの一日パスポートは変動価格制で、2026 年 9 月は平日の多くが 9,900 円、週末が 10,900 円。公式サイトでは毎日 14:00 に二か月後の同日分を発売します。無料のプライオリティパスは公式サイトのサービス一覧に載っておらず、待ち時間を短縮できるのは有料のディズニー・プレミアアクセス(一人一回 1,000~3,500 円)のみ。運営時間、25 周年イベント、スタンバイパス、エントリー受付、ファンタジースプリングスの利用方法、初回にランドとシーのどちらを選ぶかも解説。2026 年 9 月に公式サイトで確認しました。
- モデルコース
- 家族向け
出典
- Git installation · 確認日:
- Git init · 確認日:
- Git diff · 確認日:
- Git restore · 確認日:
- Git revert · 確認日:
- Codex review workflow · 確認日: