2026年10月8日にPro Gitの変更記録・remote、git pullのマニュアル、branchingの公式章を再確認した。Gitは変更をcommitへ記録し、remoteから取得・統合する流れを持つが、pullはfetchと統合の組み合わせであり、branch、remote、working tree、index、履歴、レビュー、CIを一つの同期ボタンへしない。共有前に差分、取得先、統合方針、未コミット変更、保護規則を確認し、教材のコマンドは自社の運用証跡とは別に扱う。
Gitは、ファイルの変更を自分で選んだ区切りに記録し、差分を調べたり、別の作業を統合したりするための道具です。ファイルを保存しただけで履歴が増えるわけではありません。まず「作業中の内容」「次に記録する内容」「記録済みの内容」を区別すると、操作の意味がつながります。
30秒で要点
addで記録対象を選び、commitで履歴を作る。編集しただけではコミットされない。pushは別リポジトリへの共有、pullは取得と統合。どちらも公開・本番反映と同義ではない。- 最初は空の練習フォルダーで、差分確認、コミット、ブランチ、ローカルの共有を一巡する。
GitとGitHub、リポジトリを分けて考える
リポジトリは、変更履歴とそれを管理する情報のまとまりです。Gitは履歴を扱う道具、GitHubはGitリポジトリを置いて共同作業などを行うサービスです。Gitを学ぶために、最初から外部サービスのアカウントや公開リポジトリを作る必要はありません。
履歴にはコミットした内容が入ります。作業中の未コミットの変更が自動で保護されるわけではなく、別の場所へ送っていない履歴はその端末を失うと失われ得ます。「Gitを入れたのでバックアップが完了した」とは判断しないでください。画像やWord文書も記録できますが、テキストと同じ細かさで差分・統合を扱えるとは限りません。
表が収まらない場合は、横にスクロールできます
| 場所 | 何があるか | 確認する操作 |
|---|---|---|
| 作業ツリー | いま編集しているファイル | git status、git diff |
| ステージ | 次のコミットに入れる内容 | git diff --staged |
| ローカルの履歴 | コミット済みの記録 | git log --oneline |
| リモート | 別のリポジトリ | git remote -v |
git addは、その時点の内容をステージへ置きます。その後に編集した内容は、もう一度追加しなければ同じコミットに入りません。細かな状態の意味はPro Gitの変更記録で確認できます。
空の練習フォルダーで最初の履歴を作る
以下はGitが利用できるPowerShellの教材です。既存の仕事用フォルダーでは実行せず、まだ存在しない練習用の名前を使います。メールアドレスは架空の値で、この練習リポジトリだけに設定します。グローバル設定は変更しません。
mkdir git-practice
cd git-practice
git init -b main
git config user.name "Practice User"
git config user.email "practice@example.invalid"
Set-Content -Encoding utf8 note.txt "first"
git status --short
git add note.txt
git diff --staged
git commit -m "Add practice note"
git log --oneline
最初の状態ではnote.txtが未追跡、追加後は次のコミット対象、コミット後は変更がなければ作業ツリーがきれいになります。コミットIDは実行環境や時刻で変わるので、教材と同じ文字列になることを成功条件にしません。内容と件数を確認します。
次に「追加後の編集」を試します。
Add-Content -Encoding utf8 note.txt "second"
git add note.txt
Add-Content -Encoding utf8 note.txt "third"
git diff --staged
git diff
git commit -m "Add second line"
git status --short
git add note.txt
git commit -m "Add third line"
最初の差分にはsecond、後の差分にはthirdが見えるはずです。「Add second line」の直後もthirdは未記録です。確認せずにgit add .を使うと、同じ場所の別の変更まで対象になる場合があります。初心者の練習ではファイルを指定し、追加前後の差分を確認してください。鍵・トークン・個人情報は教材にも履歴にも入れません。
ブランチで試し、統合先を確認する
ブランチは作業の流れを分けるために使います。次の例では、新しいブランチで1行追加してからmainへ戻し、変更を統合します。
git switch -c try-note
Add-Content -Encoding utf8 note.txt "branch example"
git add note.txt
git commit -m "Add branch example"
git switch main
git merge --ff-only try-note
git log --oneline --all
この単純な例は、統合先で別の変更をしていないためfast-forwardで進められます。現実に履歴が分岐していれば、--ff-onlyが拒否することがあります。拒否は失敗をごまかすための条件ではなく、統合方法を人が決める地点です。
同じ行を別々に変えた衝突は、どちらが正しいかGitだけでは決められません。残す内容を確認し、動作を検証してから記録します。Pro Gitのブランチとマージでは、分岐した履歴の統合も説明されています。
外部へ送らずにremote、push、clone、pullを試す
元の練習フォルダー内から、隣に履歴の受け皿を作ります。shared.gitはこの教材用のローカルbareリポジトリです。外部ネットワークへは送信しません。
git init --bare -b main ../shared.git
git remote add origin ../shared.git
git remote -v
git push -u origin main
cd ..
git clone shared.git teammate
cd teammate
git log --oneline
git pull --ff-only
remote addは接続先に名前を付ける操作で、追加しただけではアップロードされません。cloneは複製を作り、通常は元をoriginとして設定します。公式のリモート説明も参照してください。
この時点では新しい変更がないため、pullは更新なしになるはずです。pullを「ダウンロードだけ」と覚えず、取得した履歴を現在のブランチへ統合する操作と捉えます。統合方法はオプションや設定に関係するため、教材では--ff-onlyを明示しました。git-pullの説明
戻す前に、どこまで記録したかを確認する
表が収まらない場合は、横にスクロールできます
| 困っている状態 | まず確認すること | 次の判断 |
|---|---|---|
| 追加した内容を見直したい | ステージの差分 | 記録対象から外すか、追加内容を修正する |
| 未コミットの編集を消したい | 必要な変更が混ざっていないか | 別コピーを保存してから、対象を限定する |
| 共有済みコミットを取り消したい | 他の人が参照している履歴か | 履歴を書き換える前にチームの方針を確認する |
| サイトを前の状態へ戻したい | ビルド・データ・配信の状態 | Gitの履歴操作だけで完了としない |
いきなり強制リセットや強制pushを行うより、statusと差分で対象を明確にする方が安全です。復旧操作は、未保存の作業や共有済み履歴を失う場合があるため、この入門では実行例に含めていません。
次の作業に進める確認
練習後、自分の言葉で「どの内容が作業中で、どの内容を追加し、どのコミットへ入れたか」を説明してください。架空の練習では4回のコミットができ、ローカルに作った複製にもその4件が見えます。件数だけでなく、最後のファイルに4行があることも確認します。
次に実プロジェクトへ移るときは、管理対象、秘密情報の除外、ブランチの使い方、レビュー、復旧とバックアップの担当をチームで決めます。基本用語はリポジトリ、コミット、ブランチ、マージも参照できます。