2012年6月13日水曜日

gitで作業ツリーの内容を別ブランチへ移す

masterブランチで機能追加をしていて、途中で実装方法のミスに気付いたり、より良い実装方法を思いついて、現在の作業ツリーの内容を破棄したくなることがある。

このとき万が一のことを考えて、現在の作業内容をmasterにコミットしたくないものの、別ブランチなどに保存しておきたい場合、stashが使える。

git stash save "任意の名前"

で現在の作業ツリーの内容を一時領域に保存する。保存すると同時に作業ツリーはHEADの状態になる。

その後、別ブランチを切って、一時領域の内容を取り出す。

git checkout -b anotherbranch
git stash pop

popを使うと、最新の一時領域の内容を現在のワークツリーに呼び出した後、一時領域が削除されるので手間がない。あとはこの内容を別ブランチにコミットして、masterでより優れた実装方法を試してみる。うまくいかなければこのブランチに戻る。

他により良いやり方はあるかもしれない。

0 件のコメント:

コメントを投稿