失敗から戻せる環境があれば、変更を試して学びやすくなります。
ただし、Gitを使っているだけで、すべてのファイルや外部操作が元に戻るわけではありません。
このレッスンでは、架空の案内文を題材に、練習用のリポジトリと開始状態の記録を準備します。
どこで作業し、何が記録され、何を確認してから変更するかを整理します。
この記事で学ぶこと
- 保存先と共有範囲を確認する
- 記録対象を理解して履歴へ残す
- 復旧後の実物まで確かめる
見本だけの環境を用意する
最初の練習では、本番サイト全体を複製する必要はありません。
短い説明文とボタンを持つ見本ページなど、結果を確かめられる題材を選びます。
実際の顧客情報、支払い処理、送信先の設定は不要です。
必要な機能が少ないほど、変更の影響と復旧範囲を理解しやすくなります。
架空の研修案内なら、タイトル、受講対象、資料請求の案内を置きます。
会社名や連絡先も架空と明記します。
実データを一部だけ匿名化すると、画像や付随情報に識別情報が残る場合があります。
最初から見本を作る方が、確認すべき情報が少なくなります。
練習の目的は本番の再現ではなく、編集と検証の一巡です。
既存の見本を使うときは、その実行方法と内容を確認します。
出所不明のプロジェクトを開き、説明されていない処理を実行することは避けます。
Codexへ渡す前に、何が入っているかを人が説明できる状態にします。
知らないファイルが多いなら、より単純な題材へ縮小することも有効です。
説明メモには、正しい表示と直す箇所を短く書きます。
例えばボタンだけを変更し、見出しとリンク先は維持する条件です。
見本の正解が分かれば、AIの提案を評価できます。
実際の業務に似せすぎるより、どこを変えたかを見分けられる単純さを残す方が初回の練習に適しています。
作業場所と共有範囲を確認する
フォルダ名だけでなく、保存場所を確かめます。
本番のリポジトリ、練習用のリポジトリ、同期された共有フォルダは、見た目が似ていても影響が違います。
現在開いている場所を確認し、練習用であることが分かる名前にします。
複製元を誤って編集しないようにすることが最初の確認です。
共有や自動公開の設定がある場合、ローカルでの変更が別の工程へつながることがあります。
練習では本番への公開経路を含めない構成にします。
リモートという別の保存先へ送る操作も、手元での記録とは区別します。
履歴を保存することと、他者へ共有することを同じ操作だと考えないでください。
複数の作業環境を使う場合は、成果物がどこにあるかを報告へ残します。
分離した環境で直したのに、元の場所を開いて「変更がない」と判断することがあります。
現在の作業場所、対象の履歴、確認するファイルの位置を揃えます。
慣れるまでは1つの練習環境だけで操作の関係を理解してください。
練習用のブラウザ表示も、開いているページがどの環境かを確認します。
本番と練習ページの見た目が同じだと、修正結果を誤認することがあります。
保存先と表示先を一組にしてメモへ残してください。
ファイルの場所を正しく選んでも、確認する画面を取り違えれば検証が成立しません。
変更前の状態を記録する
Gitでは、記録対象の変更を選び、コミットという区切りを作ります。
コミットは、その時点で記録したファイルの状態を後から参照できるようにするものです。
フォルダを作っただけでは、開始状態が履歴へ入ったとは限りません。
対象一覧を確認し、何を記録するのかを理解してから実行します。
ここからは、Git 2.23以降が使えるmacOSかLinuxのターミナルで練習します。
既存の業務フォルダでは実行しません。
次の各行を順番に実行し、途中でエラーが出たら止めます。
最初の行は/tmpに新しい練習フォルダを作って移動する操作です。
終了後のパスが/tmpまたは/private/tmp内の0ku-codexで始まることを確認してください。
記録前の変更、新しい未追跡ファイル、記録対象外のファイルは、扱いが異なります。
特に、除外設定されたものまで履歴へ保存されたと考えないでください。
必要なデータには別のバックアップが必要な場合もあります。
Gitの履歴が何を含むかを確認することが、安心して試すための前提です。
note.txtには架空のボタン文言だけを保存します。
addは記録対象を選ぶ操作、commitは選んだ内容を履歴へ残す操作です。
氏名とメールの指定は、この練習のコミット1回だけに使います。
最後のstatusで何も表示されなければ、開始状態を記録できています。
既存の業務ファイルは一つも扱いません。
- ① practice_dir=$(mktemp -d /tmp/0ku-codex.XXXXXX) && cd "$practice_dir"
- ② pwd
- ③ git init
- ④ printf "%s\n" "資料を見る" > note.txt
- ⑤ git add -- note.txt
- ⑥ git -c user.name=Practice -c user.email=practice@example.invalid -c commit.gpgsign=false commit -m start
- ⑦ git status --short
秘密と実行権限を切り離す
練習に不要な認証情報は、作業場所へ置きません。
接続用の鍵、実際の送信先、顧客の住所などは、見本文言の修正には必要ありません。
設定を再現したい場合も、秘密の値を空にした見本を使います。
実行できることを増やすより、試したい作業に必要な範囲へ絞ります。
Gitの除外設定は、履歴へ入れたくない対象を指定するものです。
Codexの読み取りを技術的に禁止する設定とは別です。
作業場所の整理、Gitの記録対象、実行環境の権限を分けて確認してください。
どれか1つを設定したから残りも保護される、という関係ではありません。
権限を求められた場合は、今の練習に必要な操作かを見ます。
文章の変更だけなのに外部接続や本番情報が必要とされるなら、依頼や環境が適切かを見直します。
むやみに許可範囲を広げず、何をしようとしているかを確かめます。
必要性が説明できる操作だけで、小さな練習を完結させます。
安全確認の対象には、ファイルだけでなく実行する処理も含めます。
見本の起動や検証に見えて、外部へ送信する設定が含まれる場合があるためです。
説明された手順とプロジェクトの内容を確かめ、何が起きるか分からない処理はそのまま実行しません。
小さな題材を選ぶ理由はここにもあります。
復旧を小さく試しておく
前節と同じ練習フォルダで、次の各行を順番に実行します。
printfで文言を変更した後、diffで差分を見ます。
「資料を見る」が削除側、「資料を請求する」が追加側に出れば想定どおりです。
restoreはnote.txtの未記録の変更を捨て、直前のコミットへ戻します。
今回の練習以外のファイルには使わないでください。
他の作業が混ざっていたら、見覚えのない変更を消さずに内容を確認します。
複数人や複数のAIが同じ環境を使う場合、自分の依頼以外の変更もあり得ます。
履歴を戻す操作は、他者の成果物へ影響することがあります。
練習で覚えるのは、何でも元へ戻す操作ではなく、対象を限定して復旧する考え方です。
最後にcatで「資料を見る」と表示され、statusに何も表示されなければ復旧できています。
note.txtをエディターで開いても同じ内容を確かめられます。
今回はページの公開も送信も行っていません。
外部へ送った情報やGitの対象外のファイルは、この復旧操作では元に戻らないことも記録します。
復旧の練習では、戻した理由と結果を記録します。
「文言が違ったので対象行を開始状態へ戻した」と残せば、操作と目的がつながります。
復旧に成功した後も、同じ失敗を起こす依頼の曖昧さが残るなら修正します。
戻せることと、次回の手戻りを減らすことの両方を学ぶ練習にしてください。
- ① printf "%s\n" "資料を請求する" > note.txt
- ② git diff -- note.txt
- ③ git restore --source=HEAD --worktree -- note.txt
- ④ cat note.txt
- ⑤ git status --short
実践課題
実践課題:開始状態と復旧記録を残す
つくるものは、note.txtだけを記録した練習リポジトリと復旧メモです。
用意するのはGit 2.23以降と、macOSかLinuxのターミナルです。
第3節と第5節の各行を順番に実行します。
インストールや本番への接続は含めません。
- 第3節の手順で/tmp内に新しい練習フォルダを作る
- note.txtを記録し、statusの出力が空になることを確かめる
- 第5節の手順で文言を変え、diffの削除行と追加行を読む
- note.txtだけを戻し、catの内容とstatusの出力をメモする
架空の完成例:「note.txtの初期文言は『資料を見る』です。『資料を請求する』への変更を差分で確認しました。対象ファイルだけを戻した後、catで初期文言を確認し、statusの出力が空であることも確かめました。」
自己確認
- 練習場所が本番と分かれている
- 開始状態の記録対象が分かる
- 他の変更を巻き込まず復旧できた
まとめ
練習環境では、見本だけを置き、開始状態を記録し、対象を限定して戻す一巡を行います。
Gitの履歴と権限設定は役割が異なります。
次の依頼へ進む前に、何が戻せて何が対象外かを短いメモにしてください。
- 保存先と共有範囲を確認する
- 記録対象を理解して履歴へ残す
- 復旧後の実物まで確かめる






