GGPT Master GuideAIを、日々の作業に。

CodexとGitで別案を元のブランチへ取り込む

公開 2026-09-21 更新 2026-09-21

CodexとGitで別案を元のブランチへ取り込む

関連テーマ:変更を調べ、試して確かめる

別のブランチで直した内容を、元の作業へ取り込みたいときの入門です。ブランチを切り替えるだけでは、別案は元へ入りません。この記事ではCodexへ依頼する前に取り込み元と取り込み先を整理し、Gitの小さな練習で結果を確かめます。

取り込む向きを先に決める

取り込み先は「今いるブランチ」、取り込み元はmergeに渡す名前です。ここでは元のブランチを main、別案を practice-title とします。実際の名前はプロジェクトによって異なります。

各段階で確認してから、次の操作へ進みます。

図解CodexとGitで別案を元のブランチへ取り込む:進める順番
  1. 1取り込み前今いる取り込み先と別案の差分を確認。未コミット変更があれば整理する。
  2. 2取り込む取り込み先でff-onlyを実行。履歴が分岐していれば止めて方法を確認する。
  3. 3結果を確かめるファイルの内容・履歴・状態を確認し、必要なテストを行う。

具体的な依頼と、結果の確かめ方は本文にあります。

図の「確認」は取り込みを実行する前の工程です。差分を読むコマンドはファイルを変更しませんが、mergeは作業中のファイルと取り込み先の履歴を更新します。

この練習は、元のブランチでは追加のコミットをせず、別案だけを一つ先へ進める形です。fast-forwardは、このように元のブランチを別案の先端まで進められる取り込み方です。両側に別々のコミットがある場合は、後述のとおり止めて確認します。

空の練習フォルダーを用意する

Git導入済みのWindowsでPowerShellを使います。既存の仕事用フォルダーの外に、新しい空のフォルダーを作って開いてください。Gitの導入やコミットが初めてなら、先にGitの基本を読めます。

Get-Location
git --version
git init -b main
git config --local user.name "Practice User"
git config --local user.email "practice@example.invalid"
Set-Content -Path note.txt -Value 'Title: first' -Encoding ascii
git add -- note.txt
git commit -m "Save first title"
git switch -c practice-title
Set-Content -Path note.txt -Value 'Title: revised' -Encoding ascii
git add -- note.txt
git commit -m "Revise practice title"
git switch main

最初の Get-Location が新しい練習フォルダーを指すことを確認してから、続けます。既存の note.txt がある場所では実行しません。名前とメールはこの練習だけの設定です。コマンドが失敗したら後続を続けず、表示された理由を確認します。

ここまでで main のnote.txtは Title: first、別案には Title: revised が記録されています。ブランチの仕組みは別案を分ける手順でも確認できます。

変更がない状態で差分を読む

git branch --show-current
git status --short
git --no-pager diff main practice-title -- note.txt
git rev-parse HEAD

現在地が main、statusの出力が空であることを確認します。diffでは Title: first の削除と Title: revised の追加が見えます。最後のコマンドで出る取り込み前のコミット番号を、フォルダー外のメモへ控えます。

実際の仕事ではファイルを限定しない git diff main practice-title でも対象全体を確認します。一つのファイルだけ見て、別案の変更全部を確認済みにしないでください。差分は二つの先端の内容の比較であり、テスト合格を意味しません。

未コミットの変更がある場合は、この練習の条件と違います。内容を見てコミットするか、一時退避の手順で残す対象を整理します。取り込みのために既存作業を捨てる必要はありません。

別案を取り込んで確かめる

git merge --ff-only practice-title
Get-Content note.txt
git status --short
git rev-parse HEAD
git rev-parse practice-title

この練習ではnote.txtが Title: revised になり、statusは空、最後の二つの番号が一致すれば、別案の先端まで取り込めています。ここでの番号一致は今回の練習条件に対する確認です。

--ff-only は、fast-forwardで進められない場合に取り込みを拒否する指定です。確認だけをするオプションではありません。成功すればその時点で取り込み先が更新されます。Git公式の説明でも、この動作と通常のマージを区別しています。

取り込み成功と、アプリや文章の完成は別です。実際の変更では必要なテストや表示確認を続けてください。この練習ではGitHubへのpush、ブランチの削除は行いません。

進められないときと戻したいとき

状況 次に確認すること
fast-forwardできないと表示される 両側で履歴が進んでいないか確認。指定を外して再実行する前に取り込み方法を検討する
Already up to dateと表示される 元のブランチ名と別案の履歴を確認。期待した変更がコミット済みかを調べる
ローカル変更を上書きすると表示される statusと差分を確認し、作業を保全してから再検討する
別案の名前が見つからない git branchで実在する名前を確認。似た名前へ推測で置き換えない
取り込んだ内容が期待と違う 後続の編集・送信を止め、控えた番号と現在の差分を確認する

fast-forwardを拒否された状態と、通常のマージで競合が発生した状態は異なります。競合を解決する必要がある場合はGitの競合記事へ進みます。

完了したfast-forwardを git merge --abort で取り消すことはできません。戻す必要があれば、取り込み前の番号、現在の未コミット変更、すでに共有したかをCodexへ伝え、変更を確認して戻す手順で対象を絞ります。共同作業の履歴を自己判断で強制的に巻き戻さないようにします。

Codexへの依頼ひな形

取り込み先はmain、取り込み元はpractice-titleです。
まず現在のブランチ、未コミット変更、両ブランチの差分を調べてください。
この段階では編集、merge、コミット、push、ブランチ削除を行いません。
取り込み対象のファイルと、取り込み後に必要な確認を示してください。
fast-forwardできない場合は理由と選択肢を説明し、勝手に別方式へ切り替えないでください。

説明と差分を確認し、取り込みを進めるときは対象の名前と実行範囲を改めて伝えます。たとえば「未コミット変更がなく、説明した差分だけならmainへff-onlyで取り込み、結果を確認してください。外部送信とブランチ削除はしません」と指定できます。これは依頼例で、Codexの製品画面や自動承認の動作を実証したものではありません。

確認した範囲

2026年9月21日にgit mergeとgit diffの公式資料を照合しました。WindowsのGit 2.53.0.windows.1で専用フォルダーを作り、差分、fast-forward後の内容と番号、履歴が分岐した場合の拒否を検証しました。Codexのモデルによる操作と共同開発環境での取り込みは未検証です。

過去の経緯も調べたい場合はGitの履歴を読む、取り込み後の動作確認はテストの進め方につなげられます。

このテーマを続けて読む

不具合修正、テスト、コード整理、ブランチで変更の結果を確認します。

変更を調べ、試して確かめるの記事をまとめて見る