はじめに
チーム開発をしているなかで、
「この編集したコード残しておきたいな、、、、でも、ほかの方法も試してみたいなぁ、、、、🤔🤔🤔」
このようなときありませんか?
こんな時に使えるのがgit stashという方法。
ぼくがいつもやる方法をここにまとめておきます。
だれかのお役に立てたら幸いです。
git stashを使いたいのはどんなとき?
まずこんな感じで、編集したいファイルがあると思います。
このファイルを編集しようと思います。
↓
このREADME.mdファイルに変更を加えました。
この変更、やっぱりなんか違うな、、、、でも、あとで何かあったときのためにどこかに残しておきたいな、、、😬😬
そんなときに使えるのがgit stashです。
git stashを使ってみる
git statusで現在の変更ファイルを確認
$ git status
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: README.md
まず、git statusで現在の編集されている状況を確認しましょう。(このgit statusで確認する癖をつけるといいらしい)
すると、README.mdが変更されていることが確認できます。
git stahs savaで変更ファイルを名前をつけて退避
$ git stahs save "ゴリラさんへの返答"
Saved working directory and index state On main: ゴリラさんへの返答
はい、これでgit stashができました。これによって、自分が編集をした内容を一旦退避させることができます。
README.mdファイルを確認してみましょう。
はい!!!さきほどのいや、お前もがんばれよ、さる
という変更が消えているのが確認できると思います。
それでは、git stash save “ゴリラさんへの返答”と打って退避させたものを確認してみましょう。
git stahs listでstashしたものを確認
$ git stash list
stash@{0}: On main: ゴリラさんへの返答
このコマンドを打つことにより、git stashしている内容をいくつも確認することができます。
このgit stash listコマンドで、ゴリラさんへの返答として保存したものがリストで確認できます。
ちなみに、git stashは1つだけではなく、何個でもすることができます。
それでは、この退避させた変更を元に戻してみましょう。
git stash applyでstashしたものを元に戻す
$ git stash apply stash@{0}
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: README.md
はい、これでさっきstashして退避させた編集した内容が戻ってきました。
それでは、README.mdファイルを確認してみましょう。
はい!これで先程のstahsで退避させていた編集内容が戻ってきました。
最後に
他にもstashする方法は色々とありますが、僕は色々試したうえで説明したコマンドで対応することが一番安心で簡単という結論に行きつきました。
ほかにもググれば色々な方法がありますので、興味がある方はググってみてください。
ゴリラを添えて