
失敗を恐れない履歴術|特別編 事故らないGit運用とブランチ戦略
著者: 管理者 / 2025-08-25 (更新: 2025-08-25)

先生……コミット履歴を見ていると、いろいろな矢印や枝が絡まっていて……もう頭が混乱してしまいますの💦
わたくし、どこから読めば良いのかしら?
わたくし、どこから読めば良いのかしら?

落ち着いてください。履歴はまるで日記のようなもの。慌てずに「いつ」「どんな変更があったか」を順番に眺めれば良いのです。
まずは `git log` から見てみましょう。
まずは `git log` から見てみましょう。
📝 解説:履歴を読み解く呪文
git log --oneline --graph --decorate --all
- --oneline:1コミットを1行に要約
- --graph:分岐を枝として表示
- --decorate:ブランチ名やタグを表示
- --all:すべてのブランチを見せる

まあ!まるで木の枝が描かれているみたいですわ🌿
あちらの線は「feature/login」ブランチで、こちらが「main」ですのね。
あちらの線は「feature/login」ブランチで、こちらが「main」ですのね。

その通りです。履歴を“物語の流れ”として捉えると、どのブランチで何をしたのかが自然と見えてきます。
そして、もし間違えてしまったときのために「戻る方法」を知っておくと安心です。
そして、もし間違えてしまったときのために「戻る方法」を知っておくと安心です。
📝 解説:事故を防ぐリカバリ術
1. 間違えてファイルを消したら(restore)
git restore <file>
→ 直前の状態に戻せます。
2. ステージに乗せすぎたら(restore --staged)
git restore --staged <file>
→ ステージから降ろして再調整できます。

わたくし、間違えてステージに全部乗せてしまうこと、よくありますの……。
でも `restore --staged` を知っていれば、慌てなくて済みますわね😊
でも `restore --staged` を知っていれば、慌てなくて済みますわね😊
3. コミットをやり直す(reset)
git reset --soft HEAD~1 # コミットだけ戻す、変更はステージに残る
git reset --mixed HEAD~1 # ステージからも降ろす
git reset --hard HEAD~1 # 変更ごと消す(要注意!)

`reset --hard` は“時を巻き戻す代わりに記録を燃やす”イメージです。
本当に不要と分かっているときだけにしましょう。
本当に不要と分かっているときだけにしましょう。

あら……燃やしてしまったら、もう戻れないのですの?😨

いえ、安心してください。Gitには最後の切り札―― `git reflog` があります。
📝 解説:過去に戻る魔法 reflog
git reflog
- すべての「HEAD(いまの位置)」の移動履歴が出ます。
reset
やcheckout
で移動した履歴も記録されているため、うっかり消したコミットもここから探せます。
git reflog
# 例:
# a1b2c3d HEAD@{0}: reset: moving to HEAD~1
# f6g7h8i HEAD@{1}: commit: feat: add login
消したコミットを復活させたいときは:
git reset --hard f6g7h8i

まあ!まるで“航海日誌”のようですわ🚢✨
過去の自分の足跡をたどって、どこへでも戻れるなんて……安心いたしました!
過去の自分の足跡をたどって、どこへでも戻れるなんて……安心いたしました!
📝 解説:作業を机にしまう stash
git stash push -m "wip: experimenting"
git stash list
git stash pop # 取り出す
- “作業中だけど一旦切り替えたい”ときに便利。
- Pull Requestのレビューや緊急修正が入ったときなどに活躍します。

お嬢様、`stash` は「机の引き出し」です。片付けてから別の作業に取りかかれば、混乱せずに済みます。

まあ!お行儀よく片付ける作法、まさに淑女のたしなみですわね🌸
📝 解説:事故らないための心得
- 共有した履歴は壊さない → reset --hard や rebase は自分だけの作業に。
- 迷ったらまず
git status
とgit log
→ 状況把握が第一歩。 - 消えたら
git reflog
を思い出す → 大抵の事故はそこから救える。 - 机を片付けるなら
stash
→ 切り替え上手は作業上手。

これで「もし失敗したら……」と怯えなくても良いのですわね✨
履歴の読み方も、過去に戻る術も身につけられて、とても心強いです!
履歴の読み方も、過去に戻る術も身につけられて、とても心強いです!

その通りです。Gitは“間違いを許してくれる仕組み”があるからこそ、安心して開発できるのです。
次回は、チーム開発を見据えて「ブランチ戦略」と「Pull Requestの運用術」を学んでいきましょう。
次回は、チーム開発を見据えて「ブランチ戦略」と「Pull Requestの運用術」を学んでいきましょう。
こちらの記事もどうぞ
みんなで作るコードの宝箱|第1回 GitHub入門
歴史を操る力|第2回 Gitのバージョン管理とは?