git reflogについてまとめた 

2018年9月16日git, 開発git

前の変更に戻したいときなどにgit reset –hardを実行してみたものの、過去に遡りすぎて作業データがなくなってしまったことがあった。そのときgit reflogなどのコマンドを実行してもとの状態に戻すことができたが、もう少し深く知っておくことで解決しやすくなると思ったので調べてみることにしました。

reflogとは

reflogを使うことにより過去にコミットした履歴を見ることができる。他のコマンドを使うことで、過去のコミット状態に戻すこともできる。

git reflog
#2b00e06 (HEAD -> master) HEAD@{0}: commit (initial): firstcommit

JavaScriptの勉強の際に使ったコードを初めてコミットしたので、その時にreflogを使って出力してみました。
ハッシュ値やHEADがどのブランチのどこにあるのか、コミット時のコメントが表示されていると思います。
git reflogで表示されたHEAD@{0}と書かれているようなシンボルは、リビジョンのハッシュ値のように使うことができる。コミット内容の確認やgit reset を使って指定した状態に戻すことが可能になります。前のコミットに戻りすぎた時には、もう一度もとの状態に戻すこともできます。

git reflog オプション

show | expire| delete | exists

git reflog show

git reflog show –all で細かい情報が見れる

git reflog show –expire = <時刻>

git reflog delete 

reflogから単一のエントリを削除します

まとめ

git でファイルの管理をすることは、とても便利ですぐにファイルの内容を切り替えたり、元の状態に戻したりすることができます。便利な分よく知らずに操作をしてしまうと、これまでの作業データがなくなってしまうかもしれません。また、元に戻すやり方も知っておく必要があると思います。自分も先日作業分が2日分戻ってしまうかもしれない状態になってしまいましたが、reflogやresetを使うことでデータを取り戻すことができました。作業に関しては、一定の区切りが付いたところで、コミットする習慣をつけたいと思います。また、コミットのコメントに関しても適当でなく、コメントを見ることで、どんなコミットを下かがわかるようなコメントを残したいと思いました。