【早見表】開発時に役立つgit stashコマンドのまとめ
変更を一時的に退避させたいとき、git stashは非常に便利なコマンドです。
例えば「今作業中だけど、急遽別のブランチでバグ修正しなきゃ…」というとき、作業内容をそのまま避けておけるのがgit stashの魅力です。
この記事では、初心者の方にもわかりやすく、基本の使い方から実践的な活用方法まで、具体例とともに丁寧に解説いたします。
あわせて、Git公式ドキュメントも適宜参照し、信頼性ある内容を心がけております。
一時退避の基本コマンド
作業中の変更を一時退避する
bashgit stash
このコマンドを実行すると、**ワークツリーの変更(追跡済みファイル)**が退避され、git statusはクリーンな状態になります。
bash$ git stash
Saved working directory and index state WIP on main: abc1234 コメントメッセージ
この状態で、他のブランチへ移動して作業することが可能です。
stashの一覧を確認する
bashgit stash list
bashstash@{0}: WIP on main: abc1234 コメント
stash@{1}: WIP on feature/foo: def5678 追加修正
それぞれのstashはstash@{N}という形で識別できます。
一時退避内容を元に戻す(apply・pop)
git stash apply
bashgit stash apply stash@{0}
このコマンドはstashされた変更をワークツリーに戻します。ただし、stash自体は削除されません。
git stash pop
bashgit stash pop
applyと同じく変更を適用し、さらにstashを削除します。作業が戻ったことを確認しましょう。
退避時にメッセージをつける
bashgit stash save "フォームレイアウト作業中"
Git 2.15以降ではこの形式は非推奨です。代わりにpushを使います。
bashgit stash push -m "フォームレイアウト作業中"
特定のファイルだけをstashする
bashgit stash push -m "header部分のみ退避" header.tsx
必要なファイルだけを選んで退避することで、粒度の細かい管理ができます。
index(ステージング済み)も含めてstash
bashgit stash -k
もしくは
bashgit stash --keep-index
このオプションは、インデックスにある変更を保持し、ワーキングディレクトリだけをstashします。
ステージング済み変更も含めてstash(indexも含む)
bashgit stash -u
もしくは
bashgit stash push --include-untracked
-uは未追跡ファイル(untracked)も含めてstashします。
bashgit stash push -a
はすべてのファイル(ignored含む)を含めます。こちらは--allのショートカットです。
stashの内容を確認する
差分で確認
bashgit stash show stash@{0}
bashgit stash show -p stash@{0}
-pをつけることで、詳細なdiff表示が確認できます。
stashを削除する
特定のstashを削除
bashgit stash drop stash@{0}
全てのstashを削除
bashgit stash clear
うっかり消してしまわないように、内容確認してから実行するのが良いでしょう。
実戦的な活用パターン
パターン1:緊急で別ブランチに移動する必要がある
bashgit stash push -m "途中作業を一時退避"
git checkout hotfix/urgent-bug
パターン2:特定ファイルだけ退避して、残りを継続作業
bashgit stash push -m "CSSだけ退避" styles/global.css
stashを適用時にコンフリクトが発生したら?
通常のマージコンフリクト同様、手動で解決してコミットする必要があります。
bashgit status
# 両方の変更がある箇所が表示される
その後、以下のように対応します。
bash# コンフリクト解消後
git add .
git commit -m "stash適用時の競合を解消"
stashはブランチをまたいで使えるのか?
はい、stashはブランチに依存せず、どのブランチでも取り出すことができます。
bashgit stash
git checkout 別のブランチ
git stash pop
stashに名前をつけて管理する方法は?
残念ながら、stashは名前での管理は直接サポートされていません。
そのため、わかりやすいメッセージを使うことが重要です。
bashgit stash push -m "ログインフォーム改善"
stashをコミットとしてブランチ化する
bashgit stash branch fix-form stash@{0}
このコマンドで、stashの内容から新しいブランチを作成できます。
よくあるエラーと対処法
| 状況 | エラー例 | 解決策 | 
|---|---|---|
| stashが適用できない | conflictが発生する | コンフリクトを手動で解消 | 
| stashが消えてしまった | pop後に確認できない | applyを使うか、branchでブランチ化してから利用 | 
| 退避したはずのファイルが戻らない | -uや-aを付け忘れ | --include-untrackedで再度退避 | 
よく使うstashコマンドまとめ
| コマンド | 説明 | 
|---|---|
git stash | 作業中の変更を一時退避 | 
git stash push -m "メモ" | メッセージ付きで退避 | 
git stash list | stashの一覧表示 | 
git stash apply | 退避内容を戻す(削除しない) | 
git stash pop | 退避内容を戻して削除 | 
git stash drop stash@{N} | 指定のstashを削除 | 
git stash clear | 全てのstashを削除 | 
git stash branch new-branch stash@{N} | 新ブランチ作成 | 
まとめ
git stashは、中断と再開が多い開発現場において強力な味方です。
用途ごとに使い分ければ、作業の効率が飛躍的に向上します。
特に以下の使い方はおすすめです。
git stash push -m "作業内容"で意味のあるメモを残すgit stash branchで分岐作業をスムーズにgit stash show -pで内容確認してから適用
詳細はGit公式stashドキュメントもぜひご参照ください。
articleGit ワークフロー地図 2025:トランクベース/フォーク/リリースブランチの選び方
articleGit ガバナンス運用:レビュー必須・チェックルール・承認フローの作り方
articleGit リリース列車モデルの実践:短サイクルで安定提供するブランチ設計
articleGit エイリアス 50 連発:長コマンドを一行にする仕事術まとめ
articleGit を macOS に最適導入:Homebrew・初期設定テンプレ・credential 管理まで
articleGit の部分取得を徹底比較:sparse-checkout/partial clone/shallow の違いと使い分け
articleWebSocket が「200 OK で Upgrade されない」原因と対処:プロキシ・ヘッダー・TLS の落とし穴
articleWebRTC 本番運用の SLO 設計:接続成功率・初画出し時間・通話継続率の基準値
articleAstro のレンダリング戦略を一望:MPA× 部分ハイドレーションの強みを図解解説
articleWebLLM が読み込めない時の原因と解決策:CORS・MIME・パス問題を総点検
articleVitest ESM/CJS 混在で `Cannot use import statement outside a module` が出る技術対処集
articleテスト環境比較:Vitest vs Jest vs Playwright CT ― Vite プロジェクトの最適解
blogiPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
blogGoogleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
blog【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
blogGoogleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
blogPixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
blogフロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
review今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
reviewついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
review愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
review週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
review新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
review科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来