'Show Abbreviated Commit Web

I have several branches that I want to gragh with git-log. They are inter-related by a bunch of merges and common ancestors. I want to see just their relationship web, so I want to exclude all linear parts of every branch's history.

So given something like:

* A
*
*
| * B
| *
| *
|/|
* | * C
| |/|
| * |
| | *
| | *
| |/
| *
|/
*

I want:

* A
| * B
| *
|/|
* | * C
| |/|
| * |
| |/
| *
|/
*

How can I gragh just the merge commits and branch tips? Also including the branching points would be a bonus.

I've tried:

  • --simplify-by-decoration - this is almost it, but it strips out the merge and branch points, so the final graph below doesn't show the cross-pollination I want to view, and doesn't label the branch points either
* A
| * B
|/ 
| * C
|/
*
  • --show-pulls - this gives me all the merges, but still clutter the tree with linear parts of the history I don't care about
  • both --simplify-by-decoration and --show-pulls - this doesn't work because --simplify-by-decoration excludes everything --show-pulls would have included


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source