GitHubalt02

失敗を恐れない履歴術|特別編 事故らないGit運用とブランチ戦略

著者: 管理者 / 2025-08-25 (更新: 2025-08-25)

user01 Troubled
先生……コミット履歴を見ていると、いろいろな矢印や枝が絡まっていて……もう頭が混乱してしまいますの💦
わたくし、どこから読めば良いのかしら?
user02 Calm
落ち着いてください。履歴はまるで日記のようなもの。慌てずに「いつ」「どんな変更があったか」を順番に眺めれば良いのです。
まずは `git log` から見てみましょう。

📝 解説:履歴を読み解く呪文

git log --oneline --graph --decorate --all
  • --oneline:1コミットを1行に要約
  • --graph:分岐を枝として表示
  • --decorate:ブランチ名やタグを表示
  • --all:すべてのブランチを見せる

user01 Surprised
まあ!まるで木の枝が描かれているみたいですわ🌿
あちらの線は「feature/login」ブランチで、こちらが「main」ですのね。
user02 Happy
その通りです。履歴を“物語の流れ”として捉えると、どのブランチで何をしたのかが自然と見えてきます。
そして、もし間違えてしまったときのために「戻る方法」を知っておくと安心です。

📝 解説:事故を防ぐリカバリ術

1. 間違えてファイルを消したら(restore)

git restore <file>

→ 直前の状態に戻せます。

2. ステージに乗せすぎたら(restore --staged)

git restore --staged <file>

→ ステージから降ろして再調整できます。


user01 Calm
わたくし、間違えてステージに全部乗せてしまうこと、よくありますの……。
でも `restore --staged` を知っていれば、慌てなくて済みますわね😊

3. コミットをやり直す(reset)

git reset --soft HEAD~1   # コミットだけ戻す、変更はステージに残る
git reset --mixed HEAD~1  # ステージからも降ろす
git reset --hard HEAD~1   # 変更ごと消す(要注意!)

user02 Serious
`reset --hard` は“時を巻き戻す代わりに記録を燃やす”イメージです。
本当に不要と分かっているときだけにしましょう。
user01 Troubled
あら……燃やしてしまったら、もう戻れないのですの?😨
user02 Calm
いえ、安心してください。Gitには最後の切り札―― `git reflog` があります。

📝 解説:過去に戻る魔法 reflog

git reflog
  • すべての「HEAD(いまの位置)」の移動履歴が出ます。
  • resetcheckout で移動した履歴も記録されているため、うっかり消したコミットもここから探せます。
git reflog
# 例: 
# a1b2c3d HEAD@{0}: reset: moving to HEAD~1
# f6g7h8i HEAD@{1}: commit: feat: add login

消したコミットを復活させたいときは:

git reset --hard f6g7h8i

user01 Surprised
まあ!まるで“航海日誌”のようですわ🚢✨
過去の自分の足跡をたどって、どこへでも戻れるなんて……安心いたしました!

📝 解説:作業を机にしまう stash

git stash push -m "wip: experimenting"
git stash list
git stash pop   # 取り出す
  • “作業中だけど一旦切り替えたい”ときに便利。
  • Pull Requestのレビューや緊急修正が入ったときなどに活躍します。

user02 Happy
お嬢様、`stash` は「机の引き出し」です。片付けてから別の作業に取りかかれば、混乱せずに済みます。
user01 Calm
まあ!お行儀よく片付ける作法、まさに淑女のたしなみですわね🌸

📝 解説:事故らないための心得

  1. 共有した履歴は壊さない → reset --hard や rebase は自分だけの作業に。
  2. 迷ったらまず git statusgit log → 状況把握が第一歩。
  3. 消えたら git reflog を思い出す → 大抵の事故はそこから救える。
  4. 机を片付けるなら stash → 切り替え上手は作業上手。

user01 Happy
これで「もし失敗したら……」と怯えなくても良いのですわね✨
履歴の読み方も、過去に戻る術も身につけられて、とても心強いです!
user02 Calm
その通りです。Gitは“間違いを許してくれる仕組み”があるからこそ、安心して開発できるのです。
次回は、チーム開発を見据えて「ブランチ戦略」と「Pull Requestの運用術」を学んでいきましょう。

こちらの記事もどうぞ みんなで作るコードの宝箱|第1回 GitHub入門みんなで作るコードの宝箱|第1回 GitHub入門 歴史を操る力|第2回 Gitのバージョン管理とは?歴史を操る力|第2回 Gitのバージョン管理とは?