はじめに:なぜコマンドでやるの?
今回は、マウスを使わずに「ブランチ(並行世界)」の作成と、「過去へのロールバック(時空移動)」を行う方法を解説します。 (※Git 2.23以降推奨の新しいコマンド switch を使います。)
GUIで楽にやりたい方はこちら:VS Code編
【2025年版】GitHub超入門 #4 -ブランチで並行世界を作る&失敗時のタイムマシーン(Rollback)-
【2025年版】GitHub超入門 #4 -ブランチとロールバック- 「コードが動かなくなった!」そんな時、特定の過去の状態まで戻す(ロールバック)方法を解説。また、メインのコードを壊さずに実験できる「ブランチ」の概念と、VS Codeでの簡単な操作方法(Reset/Revert)を紹介します。
【PART 1】ブランチ操作:並行世界を作る
メインのコード(main)を汚さずに実験するために、ブランチを使います。
1. 今いる場所とブランチを確認
git branch2. ブランチを作って移動する (switch)
一昔前は checkout でしたが、今は switch を使います。「作成」と「移動」を同時に行うコマンドです。
# git switch -c [新しいブランチ名]
git switch -c feature-test-cは create(作成)の意味。これでfeature-testという世界に移動しました。
3. 変更を加えてコミットする
適当にファイルを編集して、いつも通りコミットします。
git add .
git commit -m "実験用の変更"これで、feature-test ブランチだけが進み、main は元のままです。
4. mainに戻って統合(マージ)する
実験が成功したとして、main に取り込みます。
# まずmainに戻る
git switch main
# feature-testの内容を取り込む
git merge feature-testこれで実験内容がメインの世界に統合されました。
【PART 2】歴史を見る:ログの確認
GUIがない場合、「今どうなっているか」を知るための地図が必要です。 辞書登録(エイリアス登録)したくなるほど便利なコマンドです。
git log --oneline --graph --all--oneline: 1行でスッキリ表示--graph: 樹形図(線)で分岐を表示--all: 全部のブランチを表示
出力例:
* a1b2c3d (HEAD -> main) merge feature-test
|\
| * e5f6g7h 実験用の変更
|/
* i8j9k0l 初回のコミット左側の英数字(a1b2c3dなど)がコミットID(ハッシュ)です。これをメモして次の操作に使います。
【PART 3】ロールバック:時を戻す・打ち消す
「動かなくなった!戻したい!」という緊急事態の対処法です。
パターンA:自分だけの作業なので、完全に時間を巻き戻したい (Reset)
「失敗した未来」をなかったことにして、過去の状態に強制移動します。
# git reset --hard [戻りたい場所のコミットID]
git reset --hard i8j9k0l- 注意: 戻った地点より未来の変更はすべて消滅します。チーム開発のリモートブランチには絶対に使わないでください。
パターンB:チーム開発中なので、履歴を残して修正したい (Revert)
「失敗した」という事実を歴史に残しつつ、逆の変更を行って帳消しにします。
# git revert [打ち消したいコミットID]
git revert e5f6g7h- 実行するとエディタが開くので、そのまま保存して閉じれば「打ち消しコミット」が作成されます。安全です。
まとめ
- ブランチの移動は
git switch。 - 歴史の確認は
git log --oneline --graph --all。 - やり直しは
reset --hard(破壊的)かrevert(安全的)。
ここまでできれば、「Git使い」を名乗ってもいいと思います。