ブランチを切り替えたらコミットが消えてしまった/(^o^)\
つい3分前確かにコミットしたはずなのに、ツリーに表示されてる最新のコミットは5日前。
噓でしょ…私の5日分の作業…。
状況整理
pushしたつもりがgit resetしてしまった…?
ずっとpushしてなかったから、何らかの原因でローカルの変更が巻き戻ってしまった…?
どうやら作業用のブランチにチェックアウトしていたつもりが、チェックアウトしていない状態でコミットしてたっぽい。
コミットが消えたわけではなく、一覧からは見えなくなっているだけでちゃんと残ってるらしい。
復活方法
git reflogコマンドでコミットの履歴を取得。
cf01020 HEAD@{1}: pull
0c47249 HEAD@{2}: commit:2
1c30a9c HEAD@{3}: commit:1
こんな感じで履歴が返ってくるので、
取り込みたいコミットのハッシュ(cf01020みたいなやつ)をコピー。
$ git cherry pick ハッシュ
git cherry pickで指定したコミットを取り戻す。
必ず古いコミットから順番に一つずつ指定してください。
参考記事
◆gitでpushしたコミットが消える現象の対処法、もしくはgit reflogの紹介
https://anatoo.hatenablog.com/entry/20121209/1354982574
本当に助かりました…🙏
作業前にチェックアウト中のブランチを確認するのと、こまめなpushを心がけたいと思います🙏