Table of Contents
はじめに
Gitを使用した開発中、ブランチを切り替える必要があるものの、現在の作業内容をコミットしたくない…そんな経験はありませんか?
例えば以下のような状況です。
- featureブランチで作業中だが、急遽mainブランチの確認が必要
- コードの変更は途中で、まだコミットするには早い
- かといって、作業内容を破棄したくない
このような場合、git stashを使用することで、作業中の変更を一時的に保存し、後で復元することができます。
方法
1. 作業内容を一時保存する
現在の変更内容をstashに保存します。
$ git stash save "作業内容の説明"この時、説明文を付けておくと後から変更内容を識別しやすくなります。
2. ブランチを切り替える
stash後は安全にブランチを切り替えることができます。
$ git checkout master3. 保存した作業内容を確認する
stashの一覧を確認するには以下のコマンドを使用します。
$ git stash list4. 作業内容を復元する
元のブランチに戻った後、保存していた変更を復元します。
# 最新のstashを適用$ git stash apply
# 特定の stash を適用する場合、インデックスを指定$ git stash apply stash@{0}5. 不要になった stash を削除する
stashを適用後、もう不要な場合は削除することができます。
# 最新のstashを削除$ git stash drop
# 全てのstashを削除$ git stash clear
# 特定の stash を削除する場合、インデックスを指定$ git stash drop stash@{0}まとめ
git stashを使用することで、コミットする前の作業内容を一時的に保存し、安全にブランチを切り替えることができます。
ただし、以下の点に注意が必要です。
- stashの説明文は具体的につけることで、後から内容を把握しやすくなります
- 不要なstashは適宜削除して、stashリストをクリーンに保ちましょう
- stashの削除は慎重に行いましょう(一度削除すると復元できません)
これらのコマンドを活用することで、より柔軟な Gitワークフローを実現できます。