🙄

知らないとヤバイ‼️git stashの使い方

2024/02/26に公開

stashとは

stashとは作業中にコミットをしたくない時、あるいは作業中に別のブランチに移動しなければいけない時に使います。
「変更を一時退避する処理」ということですが、これは一時的に別の空間に保存しておくイメージです。
作業に戻ってきた時に、まだ作業の途中からスタートできます。

git stash save(退避)

stashして一時退避するコマンドは

git stash save

でokです。しかしこれだと「どんな退避か、なぜ退避したか」がわからなくなってしまいます。そのために

git stash save "任意のメッセージ"

でメッセージを書いておくと、「どんな退避か、何のための退避か」わかるようになります。

git stash list

stashした内容を確認できるコマンドです。

taro% git stash list
stash@{0}: WIP on (no branch): 〇〇 # This is a combination of 5 commits. # This is the 1st commit message:
stash@{1}: WIP on main: 〇〇 Merge pull request #973 from 〇〇
stash@{2}: On issue-1: 一時退避
stash@{3}: On issue-2: 別の作業のため退避

みたいな感じになります。

メッセージの内容は以下です。

「stash@{番号}」: On 「ブランチ名」: 「メッセージ」

stashができたら別の作業にも入れる

stashが成功すれば違うブランチで作業ができます。
作業中にstashしないで、コミットを出すとstashかコミットしろやーみたいなエラーが出てきます。

git stash apply(復旧)

stashの復旧作業にはstash applyコマンドを使います。

git stash apply 復旧したいstash名

具体的なコマンドをあげると

git stash apply stash@{0}

で復旧できます。

git stash drop(削除)

stashの削除作業にはstash dropを使います。
削除したいstashは下のコマンドみたいな感じで削除します。

git stash drop stash@{1}

資料

https://www.sejuku.net/blog/71428#index_id5

Discussion