スタッシュ(stash)とaddの違いを説明し、スタッシュを使うケースを紹介します。
スタッシュ(stash)とは?
スタッシュは、作業中の変更を一時的に保存し、作業ディレクトリをクリーンな状態に戻すための機能です。スタッシュを使用すると、現在の作業を一時的に保存して別のタスクに移行し、後でその作業を再開することができます。
addとは?
git add
は、変更したファイルをステージングエリアに追加するためのコマンドです。ステージングエリアに追加されたファイルは、次回のコミットに含まれます。git add
を使用することで、どの変更をコミットするかを選択することができます。
スタッシュとaddの違い
目的:
git stash
:作業中の変更を一時的に保存し、作業ディレクトリをクリーンな状態に戻す。git add
:変更したファイルをステージングエリアに追加し、次回のコミットに含める準備をする。
適用範囲:
git stash
:全ての変更(ステージングされたファイルも含む)を一時的に保存する。git add
:指定したファイルやディレクトリの変更のみをステージングエリアに追加する。
スタッシュを使うケース
ケース1:急なバグ修正
作業中に急なバグ修正が必要になった場合、現在の変更をスタッシュしてバグ修正のブランチに切り替えます。
# 現在の作業をスタッシュ git stash # バグ修正のためのブランチに切り替え git checkout bugfix-branch # バグ修正が終わったら元のブランチに戻る git checkout main # スタッシュを適用して作業を再開 git stash pop
ケース2:ブランチの切り替え
他のブランチでの作業が必要な場合、変更をスタッシュしてからブランチを切り替えます。
# 現在の作業をスタッシュ git stash # 別のブランチに切り替え git checkout feature-branch # 元のブランチに戻る git checkout main # スタッシュを適用して作業を再開 git stash pop
ケース3:コミット前のリファクタリング
作業を続ける前に一部の変更を一時的に保存し、リファクタリングを行いたい場合にスタッシュを使用します。
# 現在の作業をスタッシュ git stash # リファクタリングの作業を行う # ... # スタッシュを適用して元の作業を再開 git stash pop
まとめ
git stash
は、作業中の変更を一時的に保存し、他のタスクにスムーズに移行するための便利な機能です。一方、git add
は、次回のコミットに含める変更を選択するためのコマンドです。これらの違いを理解し、適切な場面でスタッシュを活用することで、効率的に作業を進めることができます。