【Git】stashとは(目的と使い方)
Git stashとは
Git stashは、Gitリポジトリで一時的に変更を退避させるためのコマンド。変更を退避させることで、一時的に他のブランチに切り替えたり、別の作業を行ったりすることができる。
stashの目的
-
作業中に他のブランチに切り替えたい場合:
作業中に突然、別のブランチに切り替えて別の作業を行いたい場合がある。まだコミットしたくない変更がある場合、
git stash
コマンドを使って変更を一時的に退避できる。これにより、一時的に変更をなくして別のブランチにスムーズに切り替えることができる。 -
急なバグ修正が必要な場合:
突然のバグ修正が必要で、まだ完成していない機能の変更がある場合、一時的に変更を退避させることで、急いで修正作業を行うことができる。バグ修正後に元の作業に戻る際は、stashから変更を復元する。
-
コミットする前に変更内容を確認したい場合:
git stash
コマンドを使って変更を退避させると、作業ディレクトリがクリーンになる。この状態でコミットを行うと、変更内容を確認できる。変更内容に誤りがあれば、stashから変更を復元して再度修正することができる。 -
一時的なバックアップとして使う場合:
変更を一時的に保存できる。作業を終了する前に、一時的なバックアップとしてstashに変更を退避させることで、万が一の作業の途中でのコンピュータの再起動やエラーが発生しても、変更内容を失わなくて済む。
stashの使い方
1. 変更を一時的に退避する(stashする)
git stash
上記のコマンドを実行すると、現在の作業ディレクトリの変更が一時的に退避できる。Gitは、変更をスタック(stack)に保存する。
2. stashした変更の一覧を表示する
git stash list
変更の一覧を表示する。stashは、複数の変更を一時的に退避することができるため、変更が複数回stashされている場合がある。
3. stashした変更を復元する
git stash apply
最新のstashした変更を復元する。変更が復元した後も、stashには残る。もしstashの内容を削除したい場合は、git stash drop
コマンドを使う。
git stash drop
4. 特定のstashした変更を復元する
git stash apply stash@{n}
stash@{n}
の部分には、復元したいstashのインデックス番号(nは0から始まる番号)を入れる。例えば、最新のstashを復元する場合はstash@{0}
を指定する。
5. stashした変更を復元して削除する
git stash pop
git stash apply
と同様に最新のstashした変更を復元するが、復元後にstashから削除される。
6. stashした変更を新しいブランチで復元する
git stash branch <branch_name>
新しいブランチを作成し、そのブランチにstashした変更を復元する。stashした変更は、復元したブランチに適用される。
チーム開発の機能面はほぼ完成。明日は微調整しデザイン決めに入れるように頑張ります!
Discussion