プログラミング初心者の勉強メモ。

あくまでメモなので、自分が忘れそうなことだけちょこちょこ書いてます。

新規ファイルを作ったが命名を間違えたので戻したい

カラム名命名ミス

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コマンドは、コミット前の編集作業を一時退避させる(編集前の状態に元に戻せる)というコマンドだ。(概念理解はこのサイトの漫画が非常にわかりやすかった)

www.r-staffing.co.jp

見ていくと「こいつは使えそうだ!」と思ったので試してみた。が、$git stashコマンドを実行すると、

No local changes to save(保存するローカル変更はありません)

というコメントが返ってきた。…。

おい。出来ないじゃ無いか。と困っていたら、状況別の細かい使い方を教えてくれているサイトに遭遇。

www.granfairs.com

どうやら、新規作成したファイルを退避させる(元に戻す)には、

$git stash -uとオプションをつけて実行しないといけないらしい。

ということで再度チャレンジ。すると、見事戻りました。よかったよかった。

 

ちなみに(補足)

本来git stashは編集中の作業内容を一時退避させて、他の場所に移動させたりするのに使うものらしい。そのため、退避させた編集内容が不要になった場合、

$git stash drop(直前のstashのみ削除)

$git stash clear(全部のstashを削除)

のどちらかをしておきましょう。

 

ど素人の私はこのちょっとした作業を完了させるのに2時間ほど費やしました…