サブツリーマージのログ
まえに http://d.hatena.ne.jp/n314/20091217/1261018366 ここで書いた方法。
$ git checkout master $ git merge --squash -s subtree --no-commit rack_branch
ここのマージは
$ git merge --squash -s subtree rack_branch
普通にsquashするとコミットされないのでno-commitなしでも良さそう。
しばらく使ってみて、頻繁にマージする場合は使い勝手が悪いと感じてきた。
共通の祖先がないわけだから、squashの後にcommitするときにログが全て拾われる。
コミットが多いブランチだと厳しい。
http://help.github.com/subtree-merge/
ここのやり方だと、明示的に歴史をマージしている。
どっちがいいんだろう。
subtreeコマンド http://github.com/apenwarr/git-subtree では
merge:: Merge recent changes up to <commit> into the <prefix> subtree. As with normal 'git merge', this doesn't remove your own local changes; it just merges those changes into the latest <commit>. With '--squash', creates only one commit that contains all the changes, rather than merging in the entire history. If you use '--squash', the merge direction doesn't always have to be forward; you can use this command to go back in time from v2.5 to v2.4, for example. If your merge introduces a conflict, you can resolve it in the usual ways.git-subtree/git-subtree.txt at master · apenwarr/git-subtree · GitHub
デフォルトは通常のマージで、squashオプションもあるらしい。
個人的な理想は、前回の merge squash からのログを拾ってきてエディタの初期コメントに反映してほしいところ。