git stash – 作業中の変更を一時的に退避するコマンド

リポジトリ管理
スポンサーリンク

git stash コマンドは、作業ツリーやステージングエリアにある変更を一時的に退避して、作業ディレクトリをクリーンな状態に戻すためのコマンドです。
作業途中で別のブランチに切り替えたいときや、未完了の変更を一時的に保存したいときに利用されます。

構文(Syntax)

git stash [オプション]

主なオプション一覧

オプション説明使用例
(なし)作業中の変更を stash に保存git stash
save "メッセージ"メッセージ付きで stashgit stash save "WIP: fix bug"
-u / --include-untracked未追跡ファイルも stashgit stash -u
-a / --all無視されているファイルも含めて stashgit stash -a
liststash の一覧を表示git stash list
show [stash@{n}]指定した stash の内容を表示git stash show -p stash@{0}
apply [stash@{n}]指定した stash を復元(stash は保持される)git stash apply stash@{0}
pop [stash@{n}]指定した stash を復元して削除git stash pop stash@{0}
drop [stash@{n}]指定した stash を削除git stash drop stash@{0}
clearすべての stash を削除git stash clear

実行例

作業中の変更を stash する

git stash

出力例:

Saved working directory and index state WIP on main: 1a2b3c4 Update README

メッセージ付きで stash

git stash save "WIP: add login feature"

未追跡ファイルも stash

git stash -u

stash の一覧を確認

git stash list

出力例:

stash@{0}: WIP on main: 1a2b3c4 Update README
stash@{1}: WIP on develop: 9z8y7x6 Add API endpoint

特定の stash を適用(stash は残る)

git stash apply stash@{1}

特定の stash を適用して削除

git stash pop stash@{0}

stash を削除

git stash drop stash@{0}

stash をすべて削除

git stash clear

エラー例(stash が空)

git stash pop

出力例:

No stash entries found.

関連コマンド

  • git commit : 変更を履歴に確定する。
  • git reset : 変更を取り消す。
  • git checkout / git switch : ブランチを切り替える。

備考

  • stash は作業途中の変更を「隠す」イメージ。
  • apply は stash を残し、pop は復元して stash を削除する違いがあります。
  • 重要な変更を消してしまわないように、必要なら git stash show -p で中身を確認してから操作すると安全です。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント