Fippiyのプログラム学習内容アウトプットBlog

日々の学習内容をアウトプットして振り返りを実施する。

Laravel開発、git stashを扱う

ユーザー情報のページを作成していた時のことですが、記事としては個別にまとまっていますが、途中で順番の変更等いろいろ実施していました。

  1. ユーザー編集機能実装にとりかかる→
  2. ユーザー情報をとりあえず全部表示→
  3. Authのビューで未使用の物がある→
  4. パスワードリセット実装→

この時点でユーザー編集からパスワードリセットと別の工程になっている

パスワードリセットが結構すぐおわりそうな感じになったので、パスワードリセットを実装を先に実施することにしました。

この時点でユーザー編集機能として実施しようとしていたユーザー情報表示に関連してindexページまわりをある程度つくっていたのですが、せっかく作ったのに消すのも勿体ないし、載せ替えるのも面倒となり…。

gitの一時保存機能があるのはどこかで見たことあったのですが、せっかくなので実際に使えるように操作してみました。

今回の目的

変更したデータを作業中のブランチにコミットせずに一時退避する

なぜやるか

別のブランチの作業としてコミットするために待避しておき、後ほど再利用するため

やりたいこと

作業データを別のブランチでコミットしたい

やったこと

  • git stashによる待避を行う
  • 全てのデータを待避する

実施内容

git stashを使ってみる

データを保存する

git stashによって変更中のデータを保存する

こちらを参考にさせて頂きました、ありがとうございます。

qiita.com

さっそくコマンドを実行。

$ git stash

これだけで待避が簡単にできる…とおもったら、追跡状態の物のみ保存され、新規作成したファイルが保存されずに残置されます。

あくまで追跡しているものしか対応してないと…。

 

全てのデータを保存する

しかし、追跡関係なく、全てのデータに対応する方法もありました。

こちらを参考にさせて頂きました、ありがとうございます。

qiita.com

というわけで、オプションを付与してもう一度。

$ git stash -u 

これで対象ファイルすべて保存されました。

 

保存データの確認

保存したstashの一覧確認もできます。

$ git stash list

stash@{0}: WIP on edit-auth-password: 4a4c985 setting send email

stash@{1}: GitHub: stashing before switching to setting-S3

stash@{2}: GitHub: stashing before switching to setting-picture

S3の時のファイルが残っていました。

この時とくにstashを使った覚えはないのですが、なにかコマンドをいろいろ実行していたときに実施していたかもしれません…。

 

詳細を確認する

stashの中身を確認。

$ git stash list -p

git diffと同じように中身が表示されます。

 

簡易的に中身を確認。

$ git stash show stash@{0}

app/Http/Controllers/UserController.php          |  3 ++-

resources/views/components/menu_grand.php        |  8 +++++---

resources/views/components/menu_mypage.blade.php | 13 +++----------

routes/breadcrumbs.php                           |  9 ++++++++-

4 files changed, 18 insertions(+), 15 deletions(-)

mergeした時の様に変更内容が簡易表示されます。

 

 

保存したデータを取り出す

後は待避したデータを取り出す方法です。

今回は一部の作業データを別のブランチへ展開したかったので、ブランチを切替後の話になります。

まずは取り出すデータの確認。先程でてきました。

$ git stash list

取り出すデータを確認したら、実際にデータを取り出します。

$ git stash apply stash@{0}

このコマンドひとつでデータが取り出せます。

取り出した後は不要であればstashデータは削除することも可能。取り出すと同時に削除もできるようです。

 

stashについては以上です、今までわざわざ別のファイルにコピーして待避をしていたのですが、便利ですね。