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コマンドを使うことで、作業の中断やブランチの切り替えが柔軟に行え、効率的にバージョン管理を行うことができます。