Table of Contents
はじめに
Gitを使用した開発中、ブランチを切り替える必要があるものの、現在の作業内容をコミットしたくない…そんな経験はありませんか?
例えば以下のような状況です。
- featureブランチで作業中だが、急遽mainブランチの確認が必要
- コードの変更は途中で、まだコミットするには早い
- かといって、作業内容を破棄したくない
このような場合、git stash
を使用することで、作業中の変更を一時的に保存し、後で復元することができます。
方法
1. 作業内容を一時保存する
現在の変更内容をstash
に保存します。
$ git stash save "作業内容の説明"
この時、説明文を付けておくと後から変更内容を識別しやすくなります。
2. ブランチを切り替える
stash
後は安全にブランチを切り替えることができます。
$ git checkout master
3. 保存した作業内容を確認する
stash
の一覧を確認するには以下のコマンドを使用します。
$ git stash list
4. 作業内容を復元する
元のブランチに戻った後、保存していた変更を復元します。
# 最新の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ワークフローを実現できます。