LoginSignup
9
2

More than 5 years have passed since last update.

Gitで特定の時間にcheckoutしていたcommitに戻る方法

Last updated at Posted at 2017-09-07

コマンド

git reflog --date=local

で時間を見てチェックアウトする

git checkout <commit>

コマンドの使用シーンの例

あなた: あなたの管理しているブランチをpullしたら動かなくなったのですが
同僚 : そうですか
あなた: いつ頃なおりますか?
同僚 : わかりません
あなた: 原因はわかりますか?
同僚 : わかりません
あなた: どのコミットなら動きそうですか?
同僚 : わかりません
あなた: わかりました

あなた: checkoutの履歴はreflogで見れます

$ git reflog
51c40d6 HEAD@{0}: pull origin develop: Fast-forward
2a2be6a HEAD@{1}: pull origin develop: Fast-forward
07be43d HEAD@{2}: pull origin develop: Fast-forward
280ac79 HEAD@{3}: pull origin develop: Fast-forward
135d2db HEAD@{4}: checkout: moving from feature/xxx to develop

あなた: 動かなくなってから何回かpullしたせいでどこが動く断面かわかりません
あなた: 昼食前は動いていたような気がします
あなた: reflogはlogとおなじオプションが使えるので時間も見れます

$ git reflog --date=local
51c40d6 HEAD@{Thu Sep 7 15:00:00 2017}: pull origin develop: Fast-forward
2a2be6a HEAD@{Thu Sep 7 14:50:00 2017}: pull origin develop: Fast-forward
07be43d HEAD@{Thu Sep 7 10:00:00 2017}: pull origin develop: Fast-forward
280ac79 HEAD@{Thu Sep 7 09:30:00 2017}: pull origin develop: Fast-forward
135d2db HEAD@{Thu Sep 6 13:20:00 2017}: checkout: moving from feature/xxx to develop

あなた: 動くのはおそらくcommit 07be43dでしょう

git checkout 07be43d

あなた: 無事動きました

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2