git追記
現在使っているブランチモデル
基本はトピックブランチざくざく切って使う。
masterはリリース時のmerge以外は使わない。(tagで良くね)
新しい上位モジュール等でそれぞれのブランチを合わせる必要があるときはマージ専用のブランチを一旦作りマージを行ない、そこから目的の開発ブランチを作る。マージ元が更新された場合は再度マージ専用のブランチを使ってマージしてから開発ブランチをrebaseする。
これをやる理由はmergeとrebaseの相性が悪い(気がする)から。普通のコミットとmergeが入り乱れてるとrebaseするときmerge先まで辿っちゃって非常に残念な事になる(気がする)