【Git】git stashで追加したファイルも一時退避できる?初心者向けに徹底解説!
公開: 2025年05月27日
Gitを使って開発していると、**「ちょっと別の作業をしたいけど、今の作業内容を一旦どこかに退避しておきたい」**という状況になることがあります。
そんなときに便利なのが、**git stash(スタッシュ)**です。
stash は、現在作業中の変更内容を 「一時的に避難させておけるコマンド」です。避難させた作業は後から簡単に元に戻すことができるので、非常に便利です。
git stash を使うことは、机の上の書類を一時的に引き出しにしまって、別の作業をするようなものです。終わったらまた引き出しから取り出して元に戻せます。
この記事では、以下のような疑問に答えていきます:
git stash ってどう使うの?
git stash save って何?
git add したけどまだコミットしてないファイルもstashできる?
未追跡のファイル(新規作成ファイル)はstashできる?
初心者の方にもわかりやすく、実際のコマンド例を交えて解説していきます。
git stashの基本的な使い方作業中の変更を一時退避するには、以下のコマンドを実行します。
git stashこれだけで、インデックス(git add)済みのファイルや、編集したファイルの変更点が一時的に保存され、作業ディレクトリがクリーンな状態になります。
git stash saveとは?実は以前は git stash save という書き方がよく使われていました。
git stash save "作業内容のメモ"このコマンドは、stashに「メッセージ(説明)」を付けて保存するための方法です。
git stash saveは非推奨に現在のGitでは、git stash save は非推奨とされており、代わりに以下のように push を使うことが推奨されています:
git stash push -m "作業内容のメモ"このようにすることで、メッセージ付きでstashに保存できます。
git add 済みのファイルはstashできる?答えは Yes(できます)!
git add newfile.txt
git stashこのように git add 済みのファイルは、通常の git stash で退避されます。
git add していない未追跡ファイルは?デフォルトの git stash では、**未追跡ファイル(Untracked files)**は対象外です。
touch untracked.txt
git stash # → untracked.txt はstashされない!オプション -u(または --include-untracked)を付けましょう。
git stash -u🧹 .gitignoreされたファイルまでstashしたい場合は?
git stash -a # --all の略このコマンドは、.gitignore されたファイルもstash対象に含めます。使用には注意が必要です。
)
# 通常のstash
git stash
# メッセージ付きでstash(推奨)
git stash push -m "ちょっと作業を中断するため保存"
# addしてないファイルも含める
git stash -u
# .gitignoreファイルまで含める
git stash -a📝 まとめ
git stash は、ちょっとした切り替え作業や、ブランチを切り替える前に作業内容を避難させたいときに非常に便利なコマンドです。特に push -m を使ったメッセージ付き保存は、後から何の作業をstashしたのかがわかりやすくなるのでおすすめです。
