7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】 git stash について 簡単に説明するよ

Last updated at Posted at 2025-05-14

はじめに

開発中に「今の作業を一時的に退避して、別のタスクに取り組みたい」と思ったことはありませんか?
そんな時に便利なのが、Git のstashコマンドです。

別のブランチに行きたいからコミットをしてしまうと、履歴が汚れてしまいます。

本記事では、git stashの基本的な使い方から、便利なオプションや活用方法までを紹介します。

stash についてと基本的な使用方法

変更を一時保存する

git stash

作業中の変更(ステージ済みと未ステージの両方)を一時的に退避し、作業ディレクトリをクリーンな状態に戻します。

スタッシュの一覧を表示する

git stash list

スタッシュに保存された変更の一覧を表示します。各スタッシュには、stash@{0}stash@{1}のような識別子が付与されます。

スタッシュは適用する(スタッシュは残る)

git stash apply

最新のスタッシュを現在のブランチを適用する。
スタッシュ自体は残る。

スタッシュを適用して削除する

git stash pop

最新のスタッシュを現在のブランチに適用し、スタッシュから削除します。

特定のスタッシュを適用する

git stash apply stash@{n}

stash@{n}は、適用したいスタッシュの識別子です。
特定のスタッシュを適用することができます。

特定のスタッシュを削除する

git stash drop stash@{n}

すべてのスタッシュを削除する

git stash clear

保存されたすべてのスタッシュを削除します。

便利オプション

未追跡ファイルも含めてスタッシュする(-u / --include-untracked)

git stash -u

未追跡のファイルもスタッシュに保存します。デフォルトでは、未追跡のファイルはスタッシュに含まれません。

無視されたファイルも含めてスタッシュする(-a / --all)

git stash -a

.gitignore で無視されているファイルも含めて、すべての変更をスタッシュします。

スタッシュにメッセージを付ける(-m)

git stash save -m "作業内容の説明"

スタッシュに説明を付けることができます。後でスタッシュを確認する際に役立ちます。

特定のファイルをスタッシュする

git stash push <file1> <file2>

特定のファイルだけをスタッシュすることができます。これにより、必要な変更だけを一時保存できます。

ステージ済みの変更のみをスタッシュする(-k/--keep-index)

git stash -k

ステージ済みの変更を保持し、未ステージの変更のみをスタッシュします。

スタッシュの内容を確認する

git stash show
git stash show -p

git stash showで変更ファイルの一覧を、 pオプションを付けることで、変更内容を確認できます。

終わりに

git stash は、作業中の変更を一時的に退避させることで、柔軟な作業フローを実現する強力なツールです。
便利なオプションを活用することで、より効率的に作業を進めることができます。
ぜひ、日々の開発に取り入れてみてください!

参考文献

Git - git-stash Documentation

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?