stashを使いこなす5つのステップsato2018/9/92019/8/15みなさんこんにちは。フリーランスプログラマーのsatoです。開発に集中していたのに、急遽対応しなければならない別の修正が上がってくることもありますよね。集中し開発していた内容が、まだコミットするほどに、まとまっていない状況だったら...。しようか迷ってしまうところだと思います。gitには「stash」という、変更を一時的に退避することができる便利な機能が存在します。今回はそんなstashについて、実践的な使い方を見ていきましょう。[基本]stashとは[基本]stashを使うための5ステップ[応用]stashをもっと活用しよう![応用]コンフリクトしたときは!?5ステップで、実践的な使い方を一通りマスターしましょう。そのあとは、退避した処理と現行処理の差分の取り方など、応用的な内容を見ていきましょうか。それではよろしくお願いいたします。まとめstashとはstashを一言で説明すると「変更を一時退避する処理」と言えるでしょう。コミットはしなくない修正を、一時退避するために使われます。使い方は非常に簡単です。stash」に続けて、行いたいコマンドを指定するだけです。list」といった感じですね。具体的にどんなコマンドがあるかや、どう使うかは実例を通して見ていきましょう。stashを使うための5ステップでは早速見ていきます。現在、変更中の内容があるが、コミットできる状況ではない...そんな状況で、stashを使用する例を見ていくことにしましょう。saveを指定するだけで保存が可能です。これだと一点問題が残ります。protected]{0}」など機械的なものになってしまうためどのstashがどの退避なのか、非常にわかりづらくなります。そのためsaveする際には必ずメッセージを残しましょう。saveコマンドの後ろにメッセージをつけることで保存するデータにメッセージをつけることができます。"任意のメッセージ"このメッセージは、必ず設定しておきましょう。今回は、以下のように「一時退避」というメッセージをつけたとして、続きを進めましょう。listコマンドです。listこのコマンドでは、保存されているstashを一覧表示できます。実行時には以下のように情報が出力されます。先ほどのsaveを実行した後に、listを実行すると以下のように表示されるでしょう。一時退避ちゃんと保存されているのが確認できたら一安心です!3作業を済ませるデータの退避が確認できたら、もう安心です。発生した作業を消化してしまいましょう。apply」で復旧作業!作業が済んだら、一時退避した処理を復旧しましょう。applyコマンド」を使います。復旧したいstash名applyの後ろには、復旧したいstash名をつけましょう。※ちなみに名前を省略すると、一番最新のstashを復旧します。list」で取得できます。protected]{0}」だったとしたら、以下のようにコマンドを打ちましょう。drop」で退避データを削除!復旧が無事完了したら、退避しているデータは削除しておきましょう。コマンド」で削除が行えます。protected]{0}※こちらも名前を省略すると、一番最新のstashを削除します。削除して、後片付けまで終わればひと段落です!stashをもっと活用しよう!ここからはstashの応用的な使い方を見ていきましょう。現在stashしている内容を、確認したい時があると思います。その時はdiffコマンドを使用しましょう。以下のようにstash名を指定すれば、現在の内容との差分が表示されます。protected]{0}また「--name-only」オプションをつけることで、変更のあるファイル名のみ探すことも可能です。popコマンド」を使用することで「apply」と「rop」コマンドを同時に行うことができます。protected]{0}復旧と削除が同時に行えるため、覚えておくと便利です。コンフリクトしたときは!?プログラムに修正をかけている最中に、stashを復旧した場合などにコンフリクトが起きることがあります。コンフリクトの解消については、マージの記事にまとめていますので、学んでおくことをお勧めします。2019年8月20日まとめ今回は更新の一時退避を学びました。一時退避にはstashコマンド。緊急時に多用するコマンドなので、ぜひ覚えておいてください!また退避から、復旧までに使うコマンドは以下の通りです。保存し、確認し、復旧する。(と、あとは片付け)ぜひ覚えておいてください!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人sato学生時代を含めると、かれこれ10年以上プログラマーとして過ごしています。