Terrafromのリソースファイルをgitで管理しようとしたら変更したファイルが全て削除された!
結論
以下のコマンドを実行したから
$ git reset --hard HEAD #この二つのコマンドは同じ意味では無い、実行結果は異なる
$ git reset --hard 'HEAD^'
pushのエラーはgitで管理する必要の無い、大きいファイルもpushしようとしたから容量を超えてエラーになった。.gitignoreで不要なファイルを除外する事でpushできた。
参考にした記事
状況
terraformの学習で作ったファイルをまとめてpushしたところ、ファイルサイズの上限を超過してエラーになり、解決するために色々試した中の一つで、コミット履歴を取り消さないとpushしても同じ結果になるのでコミット取り消しのコマンドを何個か試していた。取り消されたかよくわかっていないが何回試しても同じエラーになるので取り消せていないのかと思い、変更も全て取り消す、コマンドを実行してしまい、初pushだったのでまとめて作った学習記録ファイルが全て消えるという事になってしまった。
解決
めちゃくちゃ焦って削除されたファイルを復元する方法はないかと探していると、vscodeにはタイムラインと言う機能がありそこから過去の変更履歴を探したり復元できたりするらしく。
画像のローカル履歴:をクリックするとファイルが検索できたり、一覧が出てくるのでそこから探して復元する事ができました。一安心ですが、terraform applyなどで作成された.teeraformなどの隠しディレクトリは消えたままなのでリソースなどは最初からinitしたりapplyで作成する必要があった。
終わりに
今回の失敗からめんどくさがらず、こまめにpushする事とコマンドの意味を理解することを学んだ。
.gitignoreも今回で初めてしったので今後も有効活用していきたい。