💿

【Git】stashとは(目的と使い方)

2023/07/20に公開

Git stashとは

Git stashは、Gitリポジトリで一時的に変更を退避させるためのコマンド。変更を退避させることで、一時的に他のブランチに切り替えたり、別の作業を行ったりすることができる。

stashの目的

  1. 作業中に他のブランチに切り替えたい場合

    作業中に突然、別のブランチに切り替えて別の作業を行いたい場合がある。まだコミットしたくない変更がある場合、git stashコマンドを使って変更を一時的に退避できる。これにより、一時的に変更をなくして別のブランチにスムーズに切り替えることができる。

  2. 急なバグ修正が必要な場合

    突然のバグ修正が必要で、まだ完成していない機能の変更がある場合、一時的に変更を退避させることで、急いで修正作業を行うことができる。バグ修正後に元の作業に戻る際は、stashから変更を復元する。

  3. コミットする前に変更内容を確認したい場合

    git stashコマンドを使って変更を退避させると、作業ディレクトリがクリーンになる。この状態でコミットを行うと、変更内容を確認できる。変更内容に誤りがあれば、stashから変更を復元して再度修正することができる。

  4. 一時的なバックアップとして使う場合

変更を一時的に保存できる。作業を終了する前に、一時的なバックアップとして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