この記事でわかること
git stashの基本的な使い方
主な想定読者
- Git初心者(特に、add, commitなどの基本操作は知っているが、stashは知らない方)
- 複数人での開発を最近始めた方
git stashとは
現在のブランチ上で行った変更内容を、コミットせずに一時保存しておくことができるGitコマンド
主な使用場面
- 現在のブランチから別のブランチに切り替えないといけないが、今の状態ではコミットを行いたくない時
- 例)作業中、差し込みタスク(レビュー依頼や緊急バグ修正対応など)が入ってきたのでブランチを切り替えないといけないが、現在のブランチでの作業の進み具合が中途半端なので、コミットは行いたくない時
- 誤って、作業するつもりだったブランチではない、別のブランチでガッツリと作業を進めてしまった時
- git stashを使えば、あるブランチAで行った作業内容を一時保存し、その作業内容を別のブランチBに反映させることが可能
基本的なコマンド
git stash
- 変更内容を一時保存
- 現在のブランチ上で行われた変更の内容が一時的に保存される
- 補足:正確には、現在のブランチ上の変更差分がスタックに保存される
ターミナル
git stash
git stash push -m "コメント"
- コメント付きで変更を一時保存
-
git stash
がコメント付きで実行され、変更がコメントと共に一時保存される
ターミナル
git stash push -m "ログイン機能開発途中"
git stash list
- stashした変更の一覧表示
-
git stash
によって一時保存された変更内容を、リストとして一覧表示できる
ターミナル
git stash list
<実行結果の例>
stash@{0}: On bug_5678: バグ修正:ユーザー登録画面のバリデーション
stash@{1}: On new-feature_1234: 新機能追加:パスワードリセット機能の実装
stash@{2}: On develop: 画像プレビュー表示機能の実装途中
git stash apply
- 変更を現在のブランチに適用
- git stashで一時保存しておいた変更が、現在のブランチに適用される
- 複数の変更が保存されている場合は、最新のものが適用される
- 例えば以下のように、スタッシュ名を指定することによってstashリスト内の該当する変更を適用できる
ターミナル
git stash apply
ターミナル
git stash apply stash@{2}
git stash pop
- 変更を現在のブランチに適用 & stashリストから変更を削除
-
git stash
で一時保存した変更のうち、最新のものが現在のブランチに適用され、さらにその変更はstashリストから削除される - 適用された変更はstashリストから削除される点が、
git stash apply
と異なる -
git stash apply
と同じく、スタッシュ名を指定して該当の変更を適用・削除できる
ターミナル
git stash pop
ターミナル
git stash pop stash@{1}
git stash drop
- stashリストから変更を削除
- stashリストから、該当する変更が削除される
-
git stash apply
と同じく、スタッシュ名を指定して該当の変更を削除できる
ターミナル
git stash drop
ターミナル
git stash drop stash@{0}
git stash clear
- stashリストの変更全てを削除
-
git stash
で一時保存された変更全てが、stashリストから削除される
ターミナル
git stash clear
おわりに
最後までお読み頂き、ありがとうございました!
この記事が少しでもお役に立てば幸いです。