お知らせ
「Gitコマンドを整える」を公開 — add・commit・push・pull・reset が「何をどこへ動かすか」を図で見る
🌿 Gitコマンドを整える を公開しました。Linux・コマンドのカテゴリに入ります。
コマンドの一覧表では覚えられない理由
git add はステージングエリアへ登録、git push はリモートリポジトリに反映——一覧表にはそう書いてありますが、「ステージングエリア」や「リモート」がどこにあるのか、頭の中に絵が無いと、いくら読んでも定着しません。
このツールは、Git が扱う4つの場所を横一列に並べます。
💻 作業ツリー → 📦 ステージ → 🗄️ ローカルリポジトリ → ☁️ リモートリポジトリ
そのうえで、コマンドを打つと何がどこからどこへ飛ぶかをアニメで見せます。「① 変更を記録する」「② 共有する」「③ 取り消す」「④ 枝分かれ」「⑤ 始める」の5つの場面に分けてあり、コマンド一覧表の各行から該当する図へ飛べます。
一番誤解される fetch と pull
git fetch はリモートの最新情報を取ってきますが、作業ツリーには一切反映しません。取ってきた記録がローカルリポジトリの中に置かれるだけです。git pull は多くの場合「fetch+merge」を1回で行うコマンドで、ここで初めて作業ツリーまで届きます。
図では、fetch の直後に「🚫 まだ作業ツリーには反映されない」というバッジが出ます。この1枚で伝わることが、文章だと何行も要ります。
説明の正確さにこだわりました
Git のコマンド一覧は世の中にたくさんありますが、簡略化しすぎて不正確になっているものが少なくありません。このツールでは次の点を正確に書いています。
git resetは「直前のコミットを取消」ではありません。 HEAD(今いる位置)を指定したコミットへ動かすコマンドで、--soft/--mixed/--hardによって作業ツリーとステージをどこまで戻すかが変わります。--hardは未保存の変更が消えるので、図の中でも警告を出していますgit revertは履歴を消しません。 指定したコミットを打ち消す新しいコミットを追加します。共有済みの履歴を戻すときは reset ではなくこちらですgit checkoutは役割が分かれました。 現在はgit switch(ブランチ移動)とgit restore(ファイル復元)に分かれています。checkout も動きますが、両方を書いていますgit rebaseは merge とは別物です。 自分のコミットを別の土台の上に置き直すため、履歴が書き換わります。共有済みのブランチでは使わないのが定番です
設定によって挙動が変わる箇所は「多くの場合」「設定によっては」と書き、断定を避けています。
各コマンドの「そのまま打てる形」つき
git commit -m "メッセージ" のように、コピーしてすぐ使える形を20コマンドぶん添えました。全215種になりました。