毎度手順を調べる手間を省略するためのメモ
環境
$ git --version git version 2.21.1 (Apple Git-122.3)
状況
- 作業をしてコミットしていざPushしようとしたらmasterにやっていた
- 思い切りresetするには変更量が多い
やり方
- まずはorigin/masterからブランチを切る.他にふさわしいbranchがあればそれを指定する。
- remoteの向け先がコピー元と同じになっているので一旦リセットする
- コミットの差分数を調べる
- 差分数だけcherry-pickする
- 元のブランチをリモートの状態と同等にする
例
feature/new_filesに6個のコミットを移す場合のやり方
$ git checkout -b feature/new_files origin/master $ git branch --unset-upstream $ git log --oneline ..master $ git cherry-pick master~6..master # masterをもとに戻す $ git checkout master $ git fetch $ git reset --hard origin/master