0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】git stash コミット前の変更を退避する

Posted at

はじめに

コミット前の変更を一時的に退避させるコマンド git stash の使い方を備忘録としてまとめます。

基本の使い方

スタックに退避する

$ git stash
$ git stash save
オプション 意味
なし 変更をスタックに退避する(untracked、ignoredファイルは除く)
-u (--include-untracked) untrackedファイルも一緒に退避する
-a (--all) untrackedファイルに加えて、ignoredファイルも一緒に退避する
-k (--keep-index) ステージ済みの変更は退避しない
--patch 退避したい変更を対話的に選択する

スタックに退避した変更を再適用する

$ git stash apply
$ git stash apply stash@{0} # stash@{0}は直近に退避した変更
オプション 意味
なし stash@{n}を指定しなければ、直近に退避された変更を再適用する。ステージ状態はリセットされる
--index ステージ状態も含めて再適用する

スタックに退避した作業を削除する

$ git stash drop
$ git stash drop stash@{0}

スタックに退避した変更を再適用し、スタックから削除する

$ git stash pop
$ git stash pop stash@{0}

その他の使い方

作業ディレクトリの削除

# 要注意・要オプション
$ git clean

# こちらの方が安全
$ git stash --a # 一旦すべてを退避させる

スタックに退避した変更内容を見る

$ git stash show
$ git stash show stash@{0}
オプション 意味
なし 直近に退避した変更内容を見る
-p 変更内容を詳しく見る

メッセ―ジを追加して退避する

$ git stash save "メッセージ"

スタックの一覧を見る

$ git stash list

スタックを空にする

$ git stash clear

スタックに退避した変更内容からブランチを作成する

  • 新しいブランチを作成する
  • 作業をスタックに退避したときのコミットをチェックアウトする
  • スタックにある作業を再適用する
  • 成功すればスタックからその作業を削除する
$ git stash branch "[作成するブランチ名]"

git stash の実行前後に使うコマンド

作業ディレクトリの状態を確認する

$ git status
オプション 意味
なし デフォルトでallが対象。作業ディレクトリのファイルとステージングの状態を表示する
-s (--short) ショートフォーマットで表示する

おわりに

退避する際はgit stash -u git stash -aとオプション付きで覚えた方が安心して使えそうです

参考

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?