ExpressをやったもののGitの操作をミスって全喪失した #13
今日やったこと
Expressでjson web token
json web tokenと言うものがあるらしく、イケた認証方法みたいなのでやってみました。
こちらを参考に写経しつつ、分からないメソッドを調べつつ進めました。
Expressのお勉強にもなってとても良かったです。
サンプルコードを置こうと思ってたんですが…
Gitの操作ミスにより全ソース喪失
やっちゃいました。
写経とはいえ、理解するためにコメント入れたりしてたので、Githubにあげておこうとgit init
してgit add .
してgit commit -m "initialize commit"
ッターンって感じでやってたんですが…おわかりかと思いますが、.gitignoreを書かずにやってしまったため、node_modules下が全部Git管理下へ…(´・ω・`)
ここから僕が全データを喪失するまでの物語をどうぞ。
「知ってます!git revert
すればコミットをなかったことにできるんですよね!!」
git revert HEAD
ッターン
違うんですよね、git revert
は「逆のコミットを作って打ち消す」んですね。
どうなったかというと、見事に全ファイルが作業ディレクトリから消去されたと。
やってしまったううたろ少年ですが、node_modulesを含んだコミットはあるのでそこに戻れば済む話ですね。よかった。
git reset --hard xxxxxx
無事にファイルが帰ってきました。よかったですね。
gitの管理から外す為にはgit rm node_modules
でしたね。実行しました。
無事にnode_modulesは管理下から外されました。
あとは、.gitignoreを追加して、コミットし直せばOKってわけですね。
コミットしました。
…detached HEAD
なんか出てます。
もうわからん…。もう一回別のコミットに移動するか?
で、ゴニョゴニョやってるウチに操作ミスしてrevertのコミットに戻っていたようで、それでもdetached HEADは消えないし…。
とりあえず.git消して作り直すか…と思ってrm -rf .git
をやりました。
……おわかりですね。作業ディレクトリに何もない状態で.gitを削除してしまったので、見事に今日の午前中の作業を全喪失しました。おめでとうございます。
どうすればよかったのか
というわけで今日の記事には成果物なしです。
反省タイムを。
先日買ったわかばちゃんと学ぶGit使い方入門に全て書いてました…。
仕組みはどうあれ、detached HEADになったらブランチを作ってやればいいみたいです。
あとは必要に応じてマージしてやればいいってことですかね。多分。
ほんとGit力が足りなくて泣けてきますね。
detached HEAD状態に関しては以下を…。
雑談
午前中の成果が全て吹き飛びました。
他人が絡んでいるプロジェクトとかでやらかさなくてよかったと思います。
(と思ったけど他人が絡んでるプロジェクトだったら消えるのはローカルだけだから……まぁ.git消してその場しのぎしようとした罰が当たりましたかね…)