0
0

More than 1 year has passed since last update.

コミットが消えた時の復活方法

Posted at

ブランチを切り替えたらコミットが消えてしまった/(^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を心がけたいと思います🙏

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0