🔖

作業を一時退避するコマンド git stash の使い方

に公開

はじめに

Gitを使って開発をしていると、「今の作業を一時的に保留にしたいけれど、コミットはしたくない」という場面に出くわすことがあります。

そんなときに便利なのが、git stash というコマンドです。

本記事では、git stash の基本的な使い方、実務でよく使われるオプション、気をつけたい注意点について解説します。

git stashとは

git stash は、現在の作業ツリーの変更内容を一時的に退避(stash)して、
作業ディレクトリをクリーンな状態に戻すためのコマンドです。

例えば、以下のようなときにgit stashが役に立ちます。

  • 急に別のブランチに移動しなければならない
  • 今の作業を中断したいけどコミットはしたくない

基本的な使い方

作業を一時保存する

git stash

上記コマンドを実行すると、
以下の両方が stash に保存され、作業ディレクトリがクリーンになります。

  • ステージされた変更(git add 済み)
  • ステージされていない変更

よく使うオプション

名前をつけて保存する

git stash push -m "ログイン画面の途中作業"

後で見返したときに分かりやすくなります。

特定のstashを確認・適用する

git stash list

出力例:

stash@{0}: WIP on main: abc1234 ログイン画面の途中作業
stash@{1}: WIP on feature/button: def5678 ボタン実装中

リストを確認して、特定の stash を選んで復元できます。

git stash apply stash@{1}

適用してそのstashを削除する

git stash pop

apply の後に stash を削除する処理も行います。
「もう戻す必要がない」ときに便利です。

注意点

applypop を使うと、競合(conflict が発生することもあります。
また、stashあくまで一時保存なので、放置しすぎると何を保存したか分からなくなりがちです。
stash の中身は意外と忘れるので、なるべく早めに戻しましょう。

まとめ

git stash を覚えておくと、
「現在の作業をいったん置いて、別のタスクに切り替えたい」ときにとても便利です。

  • git stash:作業を一時保存
  • git stash apply:復元
  • git stash pop:復元して削除
  • git stash list:確認
  • git stash push -m:名前付きで保存

上手に活用すれば、柔軟で効率的な開発フローを実現できます。
まずは試してみて、自分なりの活用方法を見つけてみてください。

Discussion