新規ファイルを作ったが命名を間違えたので戻したい
カラム名の命名ミス
railsで新しいmodelを作る作業中のこと。
$ rails g model Favorite user:references microposts:references
とコマンド入力しなければならないところを
$ rails g model Favorite user:references follow:references
と入力してしまった。その結果、間違えたカラム名(micropost_idというカラムを作りたかったのに、follow_idというカラム)でファイルを作成してしまった。
ファイル内でカラム名を勝手に書き換えるのはご法度。
ということでどうしたものかと思い、model生成前の状態に戻す方法を調べると$git stashというコマンドにたどり着いた。
git stashとは
git stashコマンドは、コミット前の編集作業を一時退避させる(編集前の状態に元に戻せる)というコマンドだ。(概念理解はこのサイトの漫画が非常にわかりやすかった)
見ていくと「こいつは使えそうだ!」と思ったので試してみた。が、$git stashコマンドを実行すると、
No local changes to save(保存するローカル変更はありません)
というコメントが返ってきた。…。
おい。出来ないじゃ無いか。と困っていたら、状況別の細かい使い方を教えてくれているサイトに遭遇。
どうやら、新規作成したファイルを退避させる(元に戻す)には、
$git stash -uとオプションをつけて実行しないといけないらしい。
ということで再度チャレンジ。すると、見事戻りました。よかったよかった。
ちなみに(補足)
本来git stashは編集中の作業内容を一時退避させて、他の場所に移動させたりするのに使うものらしい。そのため、退避させた編集内容が不要になった場合、
$git stash drop(直前のstashのみ削除)
$git stash clear(全部のstashを削除)
のどちらかをしておきましょう。
ど素人の私はこのちょっとした作業を完了させるのに2時間ほど費やしました…