git-stash を使わないで stash的なことをやる
$ git stash今の作業を、ちょっと脇においといて…別branchに移動したりなんやりする時に便利なのでよく使います。が、忙しい時のstashは特に、stashしたことをついつい忘れてしまいがちで危険なので、あんまり使わない方がよいと聞きました。言われてみれば、おもむろに
git stash pop
した時に、全く記憶のないstashが出てきて、なんじゃこりゃー!となったことがあります。もう一回stashして見なかったことにしたりします。そんなわけで、git-stashを使わないで、stash的なことをやる方法をメモ
まず、今作業中の内容を全部add
$ git add .
で、作業中であることを示すコメントを入れてcommit
$ git commit -m "Work in progress"とかなんとか。これが、
git stash
に相当する一連の作業。「なんちゃってstash」と勝手に呼ぼう。で、本来stashしてからやりたかった作業を完了後、
先ほど仮のcommitでおいといた、なんちゃってstashの作業内容に戻る。
なんちゃってstash中に、新たにcommitを追加して、"work in progress" がHEADじゃない可能性もあるので何番目のcommitなのか確認
$ git log↓
遡って2番目のcommitが "Work in progress" だった
git-reset
で2番目のなんちゃってstashのcommitをリセットする
$ git reset HEAD~~元の作業内容に戻ってきたーヾ(*’ω’*)ノ゙ これが
git stash pop
に相当する。$ git statusで、ステージの内容が元にもどったことが確認できる。
$ git logすれば、なんちゃってstash中に作業した最新のcommitもそのまま残って無事なのが確認できるよ。
Gitって便利ねえ。実生活もGit管理したくなってきた。