Posted at

gitを使っててファイルが消えたときはまずreflog


概要

備忘録を共有します。

ブランチからmasterブランチへ移動できていない状況で、merge->add->commit->pushしたら、ファイルが消えたように見えました。


対処法

git reflogでcommitやpushの状況確認します。

$ git reflog

c57e199 (HEAD -> master, origin/master) HEAD@{0}: commit: v17 commit
3ef1bb8 (v16) HEAD@{1}: checkout: moving from v17 to master
e1a7554 (v17) HEAD@{2}: commit: v17 mod commit
0ffbfa4 HEAD@{3}: commit: v17 commit
a87f8e1 (origin/v17) HEAD@{4}: commit: v17.1
3ef1bb8 (v16) HEAD@{5}: checkout: moving from master to v17
3ef1bb8 (v16) HEAD@{6}: checkout: moving from master to master
3ef1bb8 (v16) HEAD@{7}: merge v16: Fast-forward
...

今回の場合、0ffbfa4までは正常なので、そこに戻ればよいです。

以下のようなよくわからないエラーを吐き出しましたが、ファイルは回復しました。

$ git checkout 0ffbfa4

README.md: needs merge
error: you need to resolve your current index first


参考文献