MOSFET’s blog

学んだことの備忘録

Gitスタッシュとaddの違い

スタッシュ(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は、次回のコミットに含める変更を選択するためのコマンドです。これらの違いを理解し、適切な場面でスタッシュを活用することで、効率的に作業を進めることができます。