前提
うっかり、masterブランチにいるときに変更を加えてしまった。。。ということありますよね。
そんな時、変更ファイルが少ない時はいいのですが、ノリノリで結構変更してしまった。。。という時、その変更したファイル、変更点をそっくり別ブランチへ移動したい!という時の対処法です。
master上書きしたら、怒られちゃうもんね。
まずは気にせずステージングへあげる
まずは変更したファイルをステージングエリアへ追加します。
いつも通りgit addしましょう。ドキドキしてしまいますね。
$ git add ファイル名
または、全部なら以下
$ git add .
いつも通りコミット
またしても、いつも通りコミットします。わかりやすいメッセージをつけるといいかもしれません。
$ git commit -m '別ブランチへ退避'
移動させたいブランチへcheckout
先に、変更ファイルを移動させたいブランチへcheckout(切り替え)しておきましょう。
$ git checkout 切り替え先のブランチ名
ブランチを新しく作って、さらにそこへ切り返したい場合は
$ git checkout -b '作りたいブランチ名'
[重要]いよいよ、masterブランチから移動させる
git logでさっきコミットしたIDを調べる。
$ git log
出たコミットIDを以下に入れる。
$ git cherry-pick <コミットID>
すると、さっきmasterブランチで行った編集ファイルは任意のブランチへ移動する。
masterブランチの変更点を消す
さっきのコマンドをしてもmasterブランチの変更内容は残っているので、消します。
$ git reset --hard <コミットID>