git stash(スタッシュ)で変更を一時保存する[Sourcetree]

2019年2月4日

ある任意のブランチで作業を進めている際に、「コミット」せずにいきなりgit checkoutでブランチを切り替えようとするとエラーが表示されてしまいます。このような時に利用するのが「git stash」です。

 

git stashコマンドで、コミットせずに作業を一時的にstashという領域に保存することが可能となります。作業の途中でブランチを切り替えたい時などに利用します。

 

まずは状況が分かりやすいようにSourcetreeからで説明します。

 

 

Sourcetree(Mac版)による方法


 

下記画面の様子は、mytestブランチ上で、任意のファイルを編集しコミットしていない状態(Uncommitted changesが表示されている)です。

 

「スタッシュ」ボタンをクリックすると、下記のようなウィンドウが表示されるので適当なメッセージを入力して「OK」をクリックします。

 

履歴で「Uncommitted changes」が消えて、一時退避の項目に「On mytest:bを追加」が表示されます。これでコミットされていない状態が、一時的にstash領域に保存されます。

 

戻す場合は「On mytest:bを追加」をダブルクリックして表示されるウィンドウにて「OK」します。「適用した変更を削除」にチェックを入れると、一時退避の項目から「On mytest:bを追加」も削除されます。

 

 

 

Gitコマンドによる方法


上述した手順をGitコマンドでおこないます。

 

 

masterブランチに切り替えようとすると、エラーが表示される状態です。

 

git stashコマンドでコミットしていない状態をstash領域に一時的に保存します。saveオプションでメッセージを残しています。これでブランチを切り替えてもエラーは表示されなくなります。

 

git stash listコマンドでスタッシュした変更の一覧を表示できます。

 

戻す場合は以下のようにします。applyで戻した場合、listには任意の変更(下記例ではstash@{0}:〜)が残ったままです。

 

dropで変更の一覧から、任意の変更を削除することができます。

 

戻すと同時に、任意の変更を削除する場合は、popを適用します。

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー