プロジェクトをgit flowで運用しておりますが、hotfixブランチをmergeした際、developブランチのgraphが汚くなるのが気になっています。
サンプルの最下段に実際に表示されたログを記載しますが、私としては以下の点が汚く感じました。(綺麗、汚いというのも感覚的なものではありますが)

  • はるか昔のVersion 0.1に対するmerge commitが最初の方に表示されている
  • Version 1.0に対するmerge commitが2つある
  • 単純に線が多い

hotfixがmasterから切られているため、master側にのみ存在したmerge commitが取り込まれたのかと思いますが、何か対策をご存じの方がおりましたら教えて頂ければと思います。
# なお、hotfixを切る前にdevelopブランチに対してgit rebase masterとしておくと綺麗になります。ただしgit push -fが必要なため、あまり使いたくはないところです。

サンプルコード

# 初期設定
git flow init
echo a1 >> a.txt
git add .
git commit -m "Initial commit"

# featureブランチで機能追加
git flow feature start dummy
echo a2 >> a.txt
git add .
git commit -m "Add feature"
git flow feature finish dummy

# Version 0.1としてリリース
git flow release start 0.1
echo changelog >> changelog
git add .
git commit -m "Add changelog"
git flow release finish 0.1

# 長期間にわたる開発
for i in `seq 1 100`; do
  echo dummy$i >> a.txt
  git add .
  git commit -m "Add dummy$i"
done

# Version 1.0としてリリース
git flow release start 1.0
echo changelog >> changelog
git add .
git commit -m "Add changelog"
git flow release finish 1.0

# この時点ではdevelop, master共にきれいに表示される
git log  --graph -n 20 --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(green)- %an, %cr%Creset' develop
# *   8466a19 (HEAD, develop) Merge branch 'release/1.0' into develop - Yo Takezawa, 8 seconds ago
# |\
# | * 23f5fa4 (tag: 1.0) Add changelog - Yo Takezawa, 18 seconds ago
# |/
# * 3559cae Add dummy100 - Yo Takezawa, 3 minutes ago
# * a982cbe Add dummy99 - Yo Takezawa, 3 minutes ago
# * 4c12071 Add dummy98 - Yo Takezawa, 3 minutes ago
# ...

git log  --graph -n 20 --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(green)- %an, %cr%Creset' master
# *   91da8aa (master) Merge branch 'release/1.0' - Yo Takezawa, 42 seconds ago
# |\
# | * 23f5fa4 (tag: 1.0) Add changelog - Yo Takezawa, 47 seconds ago
# | * 3559cae Add dummy100 - Yo Takezawa, 3 minutes ago
# | * a982cbe Add dummy99 - Yo Takezawa, 3 minutes ago
# | * 4c12071 Add dummy98 - Yo Takezawa, 3 minutes ago
# ...

# バグが見つかったためhotfixで修正
git flow hotfix start 1.1
echo hotfix >> hotfix
git add .
git commit -m "Add hotfix"
git flow hotfix finish 1.1

# master側は綺麗
git log  --graph -n 20 --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(green)- %an, %cr%Creset' master
# *   7778437 (HEAD, master) Merge branch 'hotfix/1.1' - Yo Takezawa, 36 minutes ago
# |\
# | * b07b7f5 (tag: 1.1) Add hotfix - Yo Takezawa, 36 minutes ago
# |/
# *   91da8aa (develop) Merge branch 'release/1.0' - Yo Takezawa, 37 minutes ago
# |\
# | * 23f5fa4 (tag: 1.0) Add changelog - Yo Takezawa, 37 minutes ago
# | * 3559cae Add dummy100 - Yo Takezawa, 39 minutes ago
# | * a982cbe Add dummy99 - Yo Takezawa, 39 minutes ago

# develop側が急に汚くなる
git log  --graph -n 20 --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(green)- %an, %cr%Creset' develop
# *   d293380 (HEAD, develop) Merge branch 'hotfix/1.1' into develop - Yo Takezawa, 12 minutes ago
# |\
# | * b07b7f5 (tag: 1.1) Add hotfix - Yo Takezawa, 12 minutes ago
# | *   91da8aa Merge branch 'release/1.0' - Yo Takezawa, 13 minutes ago
# | |\
# | * \   461e790 Merge branch 'release/0.1' - Yo Takezawa, 18 minutes ago
# | |\ \
# * | \ \   8466a19 Merge branch 'release/1.0' into develop - Yo Takezawa, 13 minutes ago
# |\ \ \ \
# | | |_|/
# | |/| |
# | * | | 23f5fa4 (tag: 1.0) Add changelog - Yo Takezawa, 13 minutes ago
# |/ / /
# * | | 3559cae Add dummy100 - Yo Takezawa, 16 minutes ago
# * | | a982cbe Add dummy99 - Yo Takezawa, 16 minutes ago
# * | | 4c12071 Add dummy98 - Yo Takezawa, 16 minutes ago