(最終更新日:2023年8月)
✔当記事は以下のような方に向けて書かれています
「git stashとは何で、何ができるのだろう?」
「git stashの具体的な使い方を知りたい」
「git stashの使用例を参照したい」
✔当記事で得られる知識
- git stashの基本的な概要
- git stashの正しい使用法とその応用方法
- git stashを用いた具体的な事例
当記事では、git stashの基本的な使い方からそのオプションを利用した応用例まで、実際の事例を通じて詳細に解説します。
ぜひとも最後までご一読ください。
「Git stash」基礎知識
こちらでは、「Git stash」についてお伝えしていきます。
この機能を理解し、利用することで、より円滑にGitを操作できるでしょう。
- Git stashとは?
- Git stashの活用シーン
Git stashとは?
「Git stash」とは、作業中の変更を一時的に保存するための機能です。
ブランチを切り替えるなど、別の作業をおこなうときに、現在の作業を一時的に退避させられます。
# 変更を一時的に保存
git stash
Git stashの活用シーン
Git Stashが使える具体的なシーンを見てみましょう。
ブランチfeature-xyz
で新機能の開発中に、別のブランチhotfix-abc
で緊急のバグ修正が必要になりました。
未完了の作業がある状態で、別のブランチに切り替えることは通常できません。
ここでgit stash
を使い、進行中の変更を一時的に保存後、別のブランチへ安全に移動できるのです。
以下はその操作手順になります。
1.現在の変更を一時保存する
git stash save "一時保存の説明"
2.別のブランチに移動する
git checkout hotfix-abc
3.バグ修正などの作業を行いコミットする
git commit -m "バグ修正"
4.元のブランチに戻る
git checkout feature-xyz
5.一時保存した作業を再開する
git stash apply
git stash
を使用することで、未完了の作業を安全に一時保存できます。
git stash
は複数の作業を同時に進める際に非常に役立つコマンドです。
基本的な「Git stash」操作
次に、「Git stash」の基本的な操作について見ていきましょう。
これらの操作を理解し、使いこなすことで、作業効率を大いに向上させられます。
- 変更の保存
- 保存にメッセージを追加
- 保存したstashの一覧表示
- 保存したstashの内容を確認
変更の保存
「Git stash」を使用して、現在の作業中の変更を一時的に保存するには、以下のコマンドを実行します。
# 現在の作業中の変更を一時的に保存
git stash
このコマンドを実行すると、現在の変更が保存され、ワーキングディレクトリは直前のコミットの状態に戻ります。
保存にメッセージを追加
保存した変更にメッセージを追加することで、後からその変更内容を見つけやすくすることができます。
以下のコマンドを実行して、メッセージを追加します。
# 現在の作業中の変更を一時的に保存し、メッセージを追加
git stash save "your message"
# 出力結果:Saved working directory and index state On feature2: これは一時保存
保存したstashの一覧表示
保存したstashの一覧を表示するには、以下のコマンドを実行します。
# 保存したstashの一覧を表示
git stash list
#出力:stash@{0}: On feature2: これは一時保存
保存したstashの内容を確認
保存したstashの具体的な内容を確認するには、以下のコマンドを実行します。
# 保存したstashの内容を確認
git stash show stash@{0}
# 出力結果
# test1.txt | 1 +
# 1 file changed, 1 insertion(+)
ここで、stash@{0}
は最新のstashを表します。
stash@{1}
、stash@{2}
という形で、古いstashを指定することも可能です。
変更の適用と削除
次に、「Git stash」を使って保存した変更の適用と削除について説明します。
この操作を理解することで、よりGitの運用を柔軟におこなえるはず。
- Stashの変更をカレントブランチに適用
- 適用後のstash削除
- Stashの削除
Stashの変更をカレントブランチに適用
保存したstashを現在のブランチに適用するには、以下のコマンドを使用します。
# 最新のstashを適用
git stash apply
適用後のStash削除
apply
コマンドを使ってstashを適用しても、そのstashは削除されません。
stashを適用した後に削除するには、以下のコマンドを使用します。
# 最新のstashを削除
git stash drop
Stashの削除
stashを削除するには、drop
コマンドを使用します。
最新のstashを削除するには先程の例のように、git stash drop
を実行します。
- 特定のStashを削除
- 全てのStashを削除
特定のStashを削除
特定のstashを削除するには、削除したいstashの名前を指定します。
# 特定のstashを削除
git stash drop stash@{0}
全てのStashを削除
すべてのstashを一度に削除するには、以下のコマンドを使用します。
# すべてのstashを削除
git stash clear
高度な「Git stash」利用方法
最後に、より高度な「Git stash」の利用方法について説明します。
これらの操作を使いこなすことで、更に柔軟なGitの運用が可能になるでしょう。
- 部分的なファイル適用
- Addせずに変更を退避
部分的なファイル適用
「Git stash」を使用して、特定のファイルだけを一時保存することも可能。
以下のコマンドを実行します。
# 特定のファイルだけをstashに保存
git stash push -- example.txt
Addせずに変更を退避
通常、変更を退避するにはadd
コマンドを使用して、変更をステージングエリアに追加する必要があります。
しかし以下のコマンドを使用すると、add
せずに変更を退避できます。
# 変更をaddせずにstashに保存
git stash save --include-untracked
# 短いコマンドとしてはこちら。
git stash -u
まとめ
ここまで学んだ「Git stash」の主要なコマンドをまとめます。
- 変更の保存:
git stash save "任意のメッセージ"
- 変更の保存(addせず):
git stash save --include-untracked
- 保存したstashの一覧表示:
git stash list
- 保存したstashの内容を確認:
git stash show stash@{0}
- 最新のstashを適用:
git stash apply
- 特定のstashを適用:
git stash apply stash@{0}
- 最新のstashを削除:
git stash drop
- 特定のstashを削除:
git stash drop stash@{0}
- すべてのstashを削除:g
it stash clear
- 特定のファイルだけをstashに保存:
git stash push -- example.txt
「Git stash」を適切に利用することで、複数の作業を効率的におこない、作業の一時保存、切り替え、復帰をスムーズにおこなえるでしょう。