Git
The `git stash` command in Git temporarily saves your current work (changes) and returns the working directory to a clean state, allowing you to later restore those changes.
git stash
Gitの git stashコマンドは、作業中の変更を一時的に保存するためのコマンドです。これにより、現在の作業状態を保存して、他のブランチに移動したり、他の作業を行ったりすることができます。
基本的な使い方
- 変更の一時保存
-
Git Bash
git stash
- このコマンドを実行すると、作業ツリーとステージングエリアの変更が一時的に保存され、作業ツリーはクリーンな状態(最新のコミット状態)に戻ります。
- 保存された変更の確認
-
Git Bash
git stash list
- 保存されたすべてのスタッシュを一覧表示します。スタッシュにはそれぞれインデックスが付いています。
- 変更の復元
-
Git Bash
git stash apply
- 直近のスタッシュを作業ツリーに適用します。スタッシュはそのまま残ります。
特定のスタッシュを適用する場合は、インデックスを指定します。 -
Git Bash
git stash apply stash@{0}
- 変更の復元と削除
-
Git Bash
git stash pop
- 直近のスタッシュを適用し、適用したスタッシュを削除します。
- 特定のスタッシュの削除
-
Git Bash
git stash drop stash@{0}
- 指定したスタッシュを削除します。
- すべてのスタッシュの削除
-
Git Bash
git stash clear
- すべてのスタッシュを削除します。
より詳細な機能
- 特定の変更を保存
- デフォルトでは、git stashは作業ツリーとステージングエリアの両方の変更を保存しますが、オプションを使って制御できます。
-
- 作業ツリーのみを保存する場合
-
Git Bash
git stash --keep-index
- ステージングエリアのみを保存する場合
-
Git Bash
git stash --patch
- メッセージ付きのスタッシュ
- スタッシュに説明を付けることができます。
-
Git Bash
git stash save "作業中の修正"
- 特定のファイルをスタッシュに含める
- 特定のファイルだけをスタッシュに含めることもできます。
-
Git Bash
git stash push -m "特定のファイルのみ保存" <ファイルパス>
使用例
例えば、ブランチAで作業中にブランチBで作業をする必要がある場合。
- 作業中の変更を一時保存
-
Git Bash
git stash
- ブランチを切り替え
-
Git Bash
git checkout ブランチB
- ブランチBでの作業を終了したら、元のブランチに戻る
-
Git Bash
git checkout ブランチA
- 保存した変更を復元
-
Git Bash
git stash pop
git stashコマンドを使うことで、作業の中断やブランチの切り替えが柔軟に行え、効率的にバージョン管理を行うことができます。