🫠
あれ、俺が前いたブランチなんだっけ
ブランチ迷宮に入ってしまったあなたへ!!!
TL;DR
- 直前のブランチに戻るには
git switch -
- ブランチ移動履歴を見るには
git reflog
直前のブランチに戻りたい
1回 main
に行ったけど直前の作業ブランチにまた戻りたい!
そんなときは、次のコマンドで戻れます。
$ git switch -
Switched to branch 'feature'
もっと前のブランチに戻りたい
複数の作業をしてるとブランチ名を忘れることが多々あると思います。
でも、 git branch
だといっぱい出すぎてどれかわからん・・・
そんなときにおすすめなのが次のコマンド
$ git reflog
4351687 (HEAD -> feature-b) HEAD@{0}: checkout: moving from develop to feature-b
be40af9 (feature-a, develop) HEAD@{1}: merge feature-a: Fast-forward
d3eeaae (origin/main, main) HEAD@{2}: checkout: moving from feature-b to develop
4351687 (HEAD -> feature-b) HEAD@{3}: commit: mod1 on feature-b
be40af9 (feature-a, develop) HEAD@{4}: checkout: moving from develop to feature-b
d3eeaae (origin/main, main) HEAD@{5}: reset: moving to d3eeaa
be40af9 (feature-a, develop) HEAD@{6}: checkout: moving from feature-b to develop
be40af9 (feature-a, develop) HEAD@{7}: checkout: moving from develop to feature-b
...
git reset
でミスったときなどに使われるコマンドですが、 git に関する多くの操作履歴が残っているので、ブランチ移動の履歴を見るのにも便利!軽率に使おう!
git reflog
の履歴はいつまで残る?
【ちなみに】 git reflog
の履歴ですが、デフォルトではいつまでも残るわけではありません。
上記ドキュメントによれば、 git gc
コマンド経由で 90 日経つと削除されるようです(デフォルト設定)。
gc.reflogExpire
git reflog expire removes reflog entries older than this time; defaults to 90 days.
変えたい場合は、git config
で設定しましょう!
$ git config set gc.reflogExpire 30 # 30日
$ git config set gc.reflogExpire now # 全消し!
$ git config set gc.reflogExpire never # ずっと消さない
# 確認
$ git config get gc.reflogExpire
never
おわりに
ラブグラフでは学生インターンを募集中⚡⚡
Ruby on Rails を中心にたくさんの開発経験を積むことができます。
僕も Web 開発未経験でしたが、今では DB 設計から UI 実装までできるようになりました!
学生のみなさん、ぜひご応募ください!
Discussion