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 が使えない。どうしたものやら。