17
12

More than 5 years have passed since last update.

git stashよりgit branch

Posted at

Gitツリー内での作業中に、別な作業が必要になってstash、ということは経験があるかもしれません。このstashがどういう動作をしているかを知ると、別の操作にしたほうがいいと思えるかもしれません。

git stashの内容

詳しい使い方は他記事に譲りますが、3行でまとめると、

  • git stash (save)で、作業領域の変更が保存される
  • git stash listで、今までに行ったstashを一覧できる
  • git stash popで復元できる

stashの欠点

あくまで簡便なものということもあって、git stash listから見られるリストではどういう変更があったのかわかりづらくなっています。

一時保存用のブランチ

Gitの場合、実はブランチを切るといっても、内部的には先頭のコミットを指す1ファイル(40バイト)を作成するだけなので、ほとんど負荷はかかりません。本当に「とりあえず、片付ける」程度でないものについては、ブランチを切ったほうがあとあと探すときも便利ですし、管理もしやすいです。

一時保存

一時保存の場合、

  1. 保存用のブランチを切って、そちらに切り替える
  2. 変更したファイルをコミットする
  3. 素のブランチに戻す

というような手順で行えます。多少工数は多いですが、ブランチとして編集分が明確に残るようになります。

復元

一時ブランチに保存したものを復元する場合も、

  1. 保存ブランチに切り替える
  2. 復元したい場所へgit rebaseする
  3. 元のブランチに戻す
  4. 元のブランチから保存ブランチをマージする
  5. (保存ブランチを削除)

というようにできます。実は、stashの中身も名前のないブランチに対してこのような操作をやっているのと同様のものとなっています。

まとめ

stashは「隠す」という意味です。隠さないといけないほど混沌としたものならともかく、そうでないものならブランチで管理したほうが便利です。

17
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
12