こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、14年目エンジニアです。
この記事では、 Gitで作業中の変更を一時的に退避させることができるgit stashコマンドについて解説していきます。
前提:実行環境
実行環境は以下の通りです。
OS | Windows11 |
---|---|
Gitのバージョン | 2.45.2 |
作業中の変更を一時的に退避させることができるgit stashコマンドを解説
作業中の変更を一時的に退避させることができるgit stashコマンドを解説します。
- コマンドプロンプト
- PowerShell
- Git Bash
のいずれかをを開きます。
(この記事では、コマンドプロンプトで解説を進めます)
そして、ブランチがある場所まで移動します。
実行するためのコマンドは
1 |
git stash |
です。
実行すると、自分が今いるローカルブランチに対してコミットしていない変更を一時的に退避させることができます。
ただし、新規作成されたファイルは退避されません。
新規作成も含みたい場合、
1 |
git stash -u |
と「-u」オプションをつける必要があります。
stashする前に、今の変更を
1 |
git status |
確認してみます。
1 2 3 4 5 |
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: aaa.txt modified: sample.txt |
「aaa.txt」と「sample.txt」が変更されていることが確認できました。
では、stashします。
1 |
git stash |
のコマンドを実行すると
1 |
Saved working directory and index state WIP on main: fbdeb55 Revert "'revert_practice'" |
作業中の変更を一時的に退避させることができます。
1 |
git status |
で確認してみると、コミットしていない変更が退避されていることが確認できました。
退避した変更を確認する場合
1 |
git stash list |
のコマンドを実行すれば、確認できます。
1 |
stash@{0}: WIP on main: fbdeb55 Revert "'revert_practice'" |
退避した変更を元に戻すやり方は、2種類あります。
1つ目は
1 |
git stash apply stash@{【インデックス】} |
これは【インデックス】指定したstashの変更が元に戻ります。
退避した変更の情報は、残り続けます。
1 |
stash@{【インデックス】} |
の部分は省略できます。
その場合、直近にstashした変更が元に戻ります。
2つ目は
1 |
git stash pop stash@{【インデックス】} |
これも【インデックス】指定したstashの変更が元に戻りますし、1つ目と同様に省略もできます。
1つ目と異なるところは、退避した変更の情報は削除される点です。
この記事では
1 |
git stash pop |
を実行します。
実行すると、退避していた変更が元に戻ったことが確認できました。
1 2 3 4 5 |
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: aaa.txt modified: sample.txt |
1 |
git stash list |
を実行してみると、退避した変更の削除されていることが確認できました。
まとめ:作業中の変更を一時的に退避させてみよう
以上が作業中の変更を一時的に退避させることができるgit stashコマンドの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント