Learn Git Branching (2)
以下、確認の続き。
level rebase2 から
ワケワカらんので show solution したらいきなり cherry-pick が出てきて吃驚仰天。cherry-pick って Junio C Hamano さんの入門 Git に出てきてないような気が。
で、諸々確認してみるに、cherry-pick というのは別なブランチにある commit で今いる branch にそれを盛り込みたい場合に使う模様。そういえば解答としては以下らしいんですが
$ git checkout one $ git cherry-pick C4 C3 C2 $ git checkout two $ git cherry-pick C5 C4 C3 C2 $ git branch -f three C2
最後のは一体何なのか。man によると以下。
-f, --force Reset <branchname> to <startpoint> if <branchname> exists already. Without -f git branch refuses to change an existing branch.
このあたり、commit を無理やり操作するアレ達、ってことになるのか。つうかどうも rebase の理解が微妙だなぁ。
bugFix o / o---o master
な状態で bugFix ブランチの先頭に master を持ってく場合、
$ git rebase bugFix master
あるいは
$ git checkout master $ git rebase bugFix
ってあたりがアレ。あと、rebase して修正する問題、ちょい色々微妙じゃないかなあ。と思ったら最初に両方 pick するのかな。ええと
newImage o---o / caption* o---o master
という歴史になってて HEAD は caption な branch な模様。goal は以下、とのことなんですが
master* o---o / caption o---o \ o newImage
たしかに rebase -i して commit 作って rebase -i して master をずらせば、なカンジは理解できるんですが、これどうなのか。
色々確認しつつ、だったですが、git rebase --continue が使えない。どうしたものやら。