今回は、ソースコードの変更を一時的に退避しておくことができる「 git stash
」コマンドについて説明します。
一人プロジェクトで開発する時に、ブランチを master
と dev
で分けたり、プルリク投げたり、マージしたりがめんどくさかったので、 master
ブランチだけ作成して、そこの設定ファイルなどには開発環境の設定(DBの接続情報など)を書いておき、本番にデプロイする際には、本番環境でソースコードを pull
した後で、設定ファイルを本番環境のものに書き換えて使ってましたが、仕様変更や機能追加をする時に、本番環境で変更している設定ファイルの変更を一度破棄して、 pull
した後でもう一度本番環境の設定に変更してたんですが、運用が進むにつれ、設定ファイルの変更箇所に漏れがあったり、設定ファイルの変更を忘れたりと、ミスが増えてきてたので、何かいい方法がないか調べてた時に git stash
というコマンドを知りました。
git stash
を使うと、 commit
していない状態の変更ファイルを一時的に退避させることができるようになります。
変更ファイルを退避した後でソースコードを pull
して最新のものを取得した後で、退避していた変更ファイルを元に戻すことで、ソースコードを最新にできて、ローカルで変更していた内容も反映させることができるようになります。
git stash
コマンドを正しく利用するためには、コマンド実行の流れをおさえておく必要があるので、その流れについて説明していきたいと思います。
git stashを使ってみる!
$ git stash save
上記コマンドを実行することで、変更ファイルを退避することができます。
退避しているファイルの状態を確認する際は、下記コマンドを実行します。
$ git stash list
変更ファイルは退避済みなので、ソースコードを pull
して最新のソースコードを取得します。
$ git pull
最後に、退避していたファイルを元に戻します。
$ git stash pop
これで、退避していたファイルを元に戻すことができました!!
実行するコマンドの流れまとめ
下記の順番でコマンド実行すれば「変更ファイル退避」→「最新ソース取得」→「変更ファイル復帰」を行うことができます。
git stash save
git pull
git stash pop
最後に
この流れを覚えておけば、ソースコード修正中に別の修正コミットを取り込まないといけない場合や、ソースの修正作業の途中で別の修正を優先して対応しないといけなくなった場合などに、今までの変更を破棄する必要もなくなります。
git
についてはあまり情報収集してなかったので、基本的なコマンドではありますが、非常に有益な情報でした。
git stash
コマンド以外にも色々と役に立つコマンドがあると思うので、 git
についてもしっかり勉強してコマンドを使いこなせるようになりたいですね。
コメント