LoginSignup
0
0

More than 3 years have passed since last update.

【初心者向け】git stashまとめ

Last updated at Posted at 2021-04-12

git stashがありがたい状況

自分がgit stashを利用するケースは以下の2つです(他にも利用シーンがあればぜひコメントで)
これらの状況では作業中の変更差分を一時的に退避させるgit stashコマンドが便利

①今作業中のブランチとは別のブランチで急ぎで対応すべき作業が発生した。だが、今の作業は中途半端で出来ればまだコミットしたくない
⇒ 作業中の変更差分をstashで退避させて、作業対応後に退避させていた変更差分を取り出す

②新しいブランチを切り忘れてコーディングを始めてしまった
⇒ 変更差分をstashで退避させて、ブランチを正しく切り直してから変更差分を取り出す

実行手順

以下のコマンドで差分を退避させる

git stash push -u

オプションの説明/saveは非推奨

-u (--include-untrackedの省略形)
新規に作成されてまだgitにtrackされていないファイルもstashする
オプションなしで実行するとtrackされているファイルのみstashされたりしてカオスになるのでとりあえずで付けておいて損はない(はず)

※git stash saveでも同様のことができますがこちらは非推奨コマンドになりました
まだsaveを使っている人はpushにアップデートしましょう

stashされた差分は以下のコマンドで確認できる

git stash list

出力例
stash@{0}: WIP on git-stash-tutorial: f86cd30 Merge pull request #4 from git_user/branchname

取り出すときは対応するstash番号(stash@{0}みたいなやつ)を指定して取り出す

git stash pop stash@{0}

git stash applyでも可

popもapplyもどちらも変更差分を取り出す時のコマンド
popは取り出すと同時にstashスタックから消える
applyは取り出した後もstashスタックに残ったままの状態になる

その他のコマンド

git stash clear

stashスタックを全て消去
無用な混乱を産まないためにも不要なstashがない状態にしておくと良い

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0