今回は以下のような場合の対処法
-
誤ってmasterブランチで作業を行ってしまった
-
作業内容をコミットせずに別のブランチで作業を行いたい
##対処法 : git stash
コマンドを使用する
git stash
とは
変更を一時的に退避しておくことのできる機能
まだcommitしていない状態の変更ファイル
(addしてる or add していない)が存在する状況で、
次のコマンドを実行すると変更ファイルを退避することができる。
$ git stash
これで、
作業途中のブランチAの変更内容を退避させ、
作業したいブランチBに切り替えて作業を行うことができる。
ではブランチBでの作業完了後、ブランチAの作業に戻りたい場合はどうする?
##stash(退避)した内容を確認・復活させる方法
###確認
$ git stash list
上記を実行すると
$ git stash list
stash@{0}: WIP on ブランチA: 168601a Add chat-side
stash@{1}: WIP on ブランチB: 189061a Add chat-main
現在退避させている一覧を確認することができる。
※退避させている数だけ行が増える
stash名: WIP on stashを行ったブランチ名: ハッシュ コミットコメント
###復活!
listの中から復活させたいstash名を確認し、以下コマンドを実行。
$ git stash apply stash@{0}
上記の場合、ブランチAで行ったstashが復活する。
stash apply
で変更を復活した場合、stashリストのなかに復活済みの変更が残る。
これを削除するには、次のコマンドを使用する。
$ git stash drop 消したいstash名
復活と削除を同時に行う場合は
$ git stash pop stash名
stashが溜まってくると、なにを変更したのか、どれが必要な変更だったのか
わからなくなるのでこまめに消したり管理することが大切。