【Git】git stashで未コミットの変更を一時保存する
コミットしていない変更を一時的に保存し、ブランチをクリーンな状態にすることができる。
なので、作業途中で無理にコミットしないでもブランチを切り替える(checkout)することができる。
便利。
stashする
# メッセージなし $ git stash # メッセージあり $ git stash save "stashメッセージ"
stashのリストを表示させる
$ git stash list stash@{0}: On v2_brnach: add stash # stashしたブランチ名: メッセージ
stashの内容を表示する
$ git stash show -p # 最新のstashの内容 $ git stash show -p stash@{n} # n番目のstashの内容
stashした変更を適用する
# 適用したstashは削除される $ git stash pop # 最新のstashを適用 $ git stash pop stash@{n} # n番目のstashを適用
注意点
stashを作成したブランチ以外でも実行ができる。
その場合、コンフリクトが発生する。
コンフリクトを解決する方法としては、以下が利用できる。
1. 手動マージ
2. git checkoutを利用
# stashを適用しない $ git checkout --ours . $ git add . # addしてコンフリクトを解決(特に変更はされない) # stashを適用 $ git checkout --theirs . # 後はaddしてcommit
どちらの場合も、ブランチが違うとstashが削除されることはない。
適用したstashを残す
$ git stash apply pop # 最新のstashを適用 $ git stash apply pop stash@{n} # n番目のstashを適用
stashを削除する
$ git stash drop # 最新のstashを削除 $ git stash drop stash@{n} # n番目のstashを削除
詳しくは
11−03 P187を参照。
- 作者: 川野辺正博
- 出版社/メーカー: 秀和システム
- 発売日: 2014/10/07
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 川野辺正博
- 出版社/メーカー: 秀和システム
- 発売日: 2012/09/18
- メディア: 単行本
- 購入: 1人 クリック: 32回
- この商品を含むブログ (13件) を見る