【Git】巻き戻しに失敗して超焦った時

github-394322_1280
LINEで送る
Share on GREE
Share on LinkedIn

日々、バックアップのつもりで
git add.
git commit -m ‘hogehoge’
って打ち込んで、バージョン管理しているつもりなんだけど、

仕事である時、何を思ったか、いらないと思って消してしまったフィアルを
とりあえずバックアップしようと思い、

「GITで巻き戻して、ファイル回収すればいいじゃん。」

と、浅はかに考えたところから、スタートします。

まず、何も考えずに、WEBで検索して、巻き戻しコマンドをやります。

1つ手前のHEADに戻すつもり
reset –hard HEAD~1

・・・
・・・あれ??なんか、WEBページの表示がおかしい・・・
そして、ファイル群がおかしいことにも気がつく、
どうやら、履歴の先頭に戻ったようだ・・・ガチョン!!

さらに、幸いにも、commitのIDを調べていたので、それに戻してみようと試みる

reset –hard “HEAD@{a6d1748039dd1347a2e44f1eb2fff7752acf0deb}”

・・・
なんか、思った結果にならない・・・

そして、打ち込んだコマンドをそのまま巻き戻してくれるやり方を見つけ、事なきを得た。

・やり方

【打ち込んだコマンドの履歴を表示】

git reflog -n 10 ※10履歴表示する

—–[こんな感じで表示される]
a6d1748 HEAD@{0}: checkout: moving from admin to ver0.95
a6d1748 HEAD@{1}: HEAD@{8}: updating HEAD
01e09c4 HEAD@{2}: HEAD@{8}: updating HEAD
a6d1748 HEAD@{3}: HEAD@{6}: updating HEAD
01e09c4 HEAD@{4}: HEAD@{4}: updating HEAD
a6d1748 HEAD@{5}: HEAD@{4}: updating HEAD
74de6e7 HEAD@{6}: HEAD@{1}: updating HEAD
01e09c4 HEAD@{7}: HEAD@{1}: updating HEAD
74de6e7 HEAD@{8}: HEAD@{a6d1748039dd1347a2e44f1eb2fff7752acf0deb}: updating HEAD
01e09c4 HEAD@{9}: HEAD~1: updating HEAD
—–

【コマンドの巻き戻し】

git reset –hard “HEAD@{7}”

HEAD@{*}の*部分は、履歴が変わるたびに増加していくので、いつも同じとは限らず、reflogを見ながら戻す時に使うといいよ。

何故かずっと前に消したはずのファイルが再復活したりして、少しだけパニクったが、記憶をたよりに、いらんファイルを削除だけして、元通りにもどったっぽい。

いや〜、GIT、ありがたいけど、少しむずいな・・・
もっと本格的に勉強せねば・・・

バージョン管理って、保険っていうのはわかるが、イマイチ、機能毎に管理したり、修正項目ごとにどうやってgit管理して整理すればいいのか、未だにわからん・・・

でも、以前会社にいたgitプロがいうには、
「addしてcommitさえしておけば、戻せるしなんとでもなる」
という言葉だけ信じることにしよう。

※ちなみに、助けてもらった(参考にさせてもらった)ページはココです。
Thanks!!!!!

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*