ほげほげ見聞録

技術メモ、備忘録、使い方はそのうち覚える

git:スタッシュ

変更を一時的に退避する機能。

 

作業を一時退避

コミットしていない状態の変更ファイルを下のコマンドで一時退避。
-pオプションでスタッシュに入れるファイルを個別に指定できる。

$ git stash

スタッシュの確認。stash@{0}はスタッシュの名前、{}内の数字は連番。ハッシュ、コミットコメントはstashを行った時のHEADのもの。

$ git stash list
stash@{0}: WIP on <branchname> <commit hash> <commit message>

スタッシュ内のファイル名を表示。変更点なども一応見られる。
-pオプションで作業の中身も見られる。

$ git stash show
 svn/trunk/home/procedure/consult/index.html | 2 + -
 1 file changed, 1 insertion(+), 1 deletion(-)

作業を取り出す

現在のHEADの位置に作業を取り出す。
以下のコマンドでスタッシュを取り出す。このままだとスタッシュの作業は残っている状態。

$ git stash apply <stash name>

スタッシュを取り出して、スタッシュの中から作業を消す場合。

$ git stash pop <stash name>

特定のファイルの内容のみ取り出す場合。popではないので、スタッシュの作業は残っている状態。

$ git stash pop <stash name> <filename>

作業を削除

名前を指定してスタッシュを削除したい場合は以下のコマンド。<stash name>を省略すると、最新のスタッシュが削除される。

$ git stash drop <stash name>

スタッシュの作業を全て消去する。

$ git stash clear