gitでpushしたあとファイルが消えた時にreflogで対応した話
概要
今さらながらですが、ちょっと前からGitを使い始めました。
わからないことやトラブル続きなのですが、そのなかでも一番焦ったことを備忘録として残しておきます。
ブランチから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
ちなみに、$ git cherry-pick
はよくわからなかったです。