[Git] 緊急事態 コミットしたはずのコミットが消えた

先日会社でGitのコミットが消えた!!と相談されました。 どんな操作をしたのか聞いたのですが、コマンドではなくGUIのツールを使っていて、何となく操作をしていたらしく、何をしたのかよくわかりませんでした。 ちょっと無理かなーと思っていたのですが、消えたコミットを探すことができました。 ## 消えたコミットを探す Gitには過去のコミットを参照するreflogというコマンドがあります。 ```bash `gutter:false; $ git reflog a234c5a (HEAD -> master) HEAD@{0}: commit: Use Markov to unmo 0668e42 HEAD@{1}: commit: Append markov aa395f8 HEAD@{2}: commit: Append TemplateResponder 02f94e4 HEAD@{3}: commit (initial): Initial commit ``` ここをよく見ると、消えたと行っていたコミットがありました。 その位置まで戻してデータをサルベージすることができました。 具体的には、該当するコミットのハッシュでcheckoutしてデータを持ってきて、HEADにマージしました。 ```bash `gutter:false; $ git checkout aa395f8 ``` no branchになったりしますが、データ取りたいだけなのでデータをとったら元のブランチに戻ればOK なんとなく使っていると危険です。 困った時は「git reflog」覚えておくといざという時に助かります。

0 件のコメント :

コメントを投稿