Featured image of post Git Stash

Git Stash

自分のタスクの開発を進めている最中に他の人からのPull Requestをレビューする場合、作業中のコードを退避させる必要がある。

シンプルなケースであれば

1
$ git stash -u

で退避して

1
$ git stash apply

で復帰させるとよい。

無名でstashした場合は直前のCommit logの名前で保存されるが、試行中のstashを幾つか取っておきたい場合など複雑なケースでは、復帰させたいstashがどれなのか判別できなくなることがある。

stashで使えるコマンドを調べてみる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ git stash -h
usage: git stash list [<options>]
   or: git stash show [<options>] [<stash>]
   or: git stash drop [-q|--quiet] [<stash>]
   or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
   or: git stash branch <branchname> [<stash>]
   or: git stash clear
   or: git stash [push [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
          [-u|--include-untracked] [-a|--all] [-m|--message <message>]
          [--] [<pathspec>...]]
   or: git stash save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]
          [-u|--include-untracked] [-a|--all] [<message>]

saveを使うと名前を付けてstashできるらしい。

1
2
$ git stash save "code plugin" -u
Saved working directory and index state On main: code plugin

確認してみる。

1
2
$ git stash list
stash@{0}: On main: code plugin

判別しやすくなった。

Built with Hugo
Theme Stack designed by Jimmy