skip to content
barorin&?

Git stashでブランチ切り替え時の作業内容を一時保存する方法

/ 4 min read

Table of Contents

はじめに

Gitを使用した開発中、ブランチを切り替える必要があるものの、現在の作業内容をコミットしたくない…そんな経験はありませんか?

例えば以下のような状況です。

  • featureブランチで作業中だが、急遽mainブランチの確認が必要
  • コードの変更は途中で、まだコミットするには早い
  • かといって、作業内容を破棄したくない

このような場合、git stashを使用することで、作業中の変更を一時的に保存し、後で復元することができます。

方法

1. 作業内容を一時保存する

現在の変更内容をstashに保存します。

Terminal window
$ git stash save "作業内容の説明"

この時、説明文を付けておくと後から変更内容を識別しやすくなります。

2. ブランチを切り替える

stash後は安全にブランチを切り替えることができます。

Terminal window
$ git checkout master

3. 保存した作業内容を確認する

stashの一覧を確認するには以下のコマンドを使用します。

Terminal window
$ git stash list

4. 作業内容を復元する

元のブランチに戻った後、保存していた変更を復元します。

Terminal window
# 最新のstashを適用
$ git stash apply
# 特定の stash を適用する場合、インデックスを指定
$ git stash apply stash@{0}

5. 不要になった stash を削除する

stashを適用後、もう不要な場合は削除することができます。

Terminal window
# 最新のstashを削除
$ git stash drop
# 全てのstashを削除
$ git stash clear
# 特定の stash を削除する場合、インデックスを指定
$ git stash drop stash@{0}

まとめ

git stashを使用することで、コミットする前の作業内容を一時的に保存し、安全にブランチを切り替えることができます。 ただし、以下の点に注意が必要です。

  • stashの説明文は具体的につけることで、後から内容を把握しやすくなります
  • 不要なstashは適宜削除して、stashリストをクリーンに保ちましょう
  • stashの削除は慎重に行いましょう(一度削除すると復元できません)

これらのコマンドを活用することで、より柔軟な Gitワークフローを実現できます。