Git Stash:作業中の変更の保存、適用、管理
git stashの完全ガイド:変更の一時保存、stashの適用やpop、複数stashの管理、特定ファイルのstash、stashコンフリクトの処理。
Stashing
詳細な説明
Git Stash完全ガイド
git stashは変更を一時的に退避させ、コンテキストの切り替え(ブランチ、タスク)を不完全な作業をコミットせずに行えます。
基本的なStash操作
# 追跡されているすべての変更をstash
git stash
# 説明的なメッセージ付きでstash
git stash push -m "WIP: ユーザー認証フォーム"
# 追跡されていないファイルも含めてstash
git stash -u
Stashされた変更の取得
# 最新のstashを適用して削除
git stash pop
# stashリストから削除せずに適用
git stash apply
# 特定のstashを適用
git stash apply stash@{2}
ベストプラクティス
- 常に
-mでメッセージを追加 -- 説明のないstashは後で識別が困難 - stashを溜めない -- 一時的なものとして使用
- 長期的な作業中のものにはブランチを優先
- stash時に追跡されていないファイルを含めるには**
-uを使用**
ユースケース
Git stashはコンテキストを素早く切り替える必要がある場合に不可欠です。一般的なシナリオには、コミットされていない変更がある状態でチームメイトがコードレビューを依頼する場合、フィーチャー開発中に緊急のバグレポートが来る場合、クリーンな作業ツリーでテストしたい場合、ローカルの変更がある状態で変更をプルする必要がある場合が含まれます。