git stash の使い方【Git】

今のブランチの作業経過を保持したまま、別のブランチに移りたい時ってあると思います。そういう時は一旦コミットして別のブランチに移るわけですが、コミットするほどでもない中途半端な時ってありますよね。

そういう時に便利なのが、stash コマンドです。以下のコマンドをよく使います。

  • git stash save:状態の保存
  • git stash list:保存されている状態のリスト表示
  • git stash pop:状態の復帰

「branchA」で作業していた場合、その状態が一時的に保存され、git status で更新が無くなっていることが確認できます。

// saveする前
$ git status
On branch branchA
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	new file:   ~/HogeHoge.swift

// save
$ git stash save
Saved working directory and index state WIP on branchA: ....

// save した後
$ git status
On branch branchA
nothing to commit, working tree clean

// リスト表示
$ git stash list
stash@{0}: WIP on branchA: ...

// 状態の復帰(git statusの結果が表示されます)
$ git stash pop
On branch branchA
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	new file:   ~/HogeHoge.swift

注意点としては、保存したブランチとは別のブランチ上で pop してしまうと、その別のブランチに状態が復帰されてしまうので、気づかずにいると、後々、コンフリクトが発生してしまう恐れがあります。

ですので、できるだけ commit できるのであれば commit してしまいましょう。stash save しすぎるとどの stash を復帰したらいいかわかりづらくなりますので多用は避けた方が無難です。

以上