Связь между n git ветвями

Если у меня есть n git ветки, как легко показать связь между этими ветвями?

В принципе, мне интересно видеть дерево подмножества всех ветвей в моем репозитории. Меня, однако, не интересуют все промежуточные коммиты.

Например: Мой репозиторий выглядит следующим образом:

     o---o--o A
    /      /
o--o--o--o--o--o B
 \  \        \
  \  o--o C   \
   \     \     \
    o--o--o--o--o--o D

Но, скорее всего, это сложнее. Теперь я хочу видеть взаимосвязь между ветвями A, C и D. Что-то вроде строк:

     o A
    /
o--o--o
   \   \
    o---o C
         \
          o--o D

Или эквивалентный обзор. Возможно ли это, и как? (Графический инструмент будет в порядке.)

Решение

На основании ответа Антуана Пелисса, нижняя строка, похоже, делает (почти) именно то, что я хочу:

git log --graph --decorate --oneline --simplify-by-decoration A B C

Обновление

Марк Лонгэр указывает в своем ответе ниже, что gitk принимает те же параметры, что и git rev-list, поэтому можно сделать:

gitk --simplify-by-decoration A C D

Ответ 1

Вы можете попробовать:

git log --graph --all --decorate --simplify-by-decoration

Он будет отображать только фиксации, которые являются ветвями или помечены.

Ответ 2

Я бы использовал:

gitk A C D

... Есть, вероятно, другие графические интерфейсы git, которые создают более красивый рендеринг графа фиксации, но я всегда нашел gitk для этой цели. Все ветки и метки помечены в стиле "Лондонское метро":

Снимок экрана gitk, показывающий несколько слияний и ветвей http://mythic-beasts.com/~mark/gitk-screenshot.png


Вы также можете использовать опцию --simplify-by-decoration для gitk, так как она понимает все параметры, которые выполняет git rev-list, например:

gitk --simplify-by-decoration A C D

A screenshot of gitk with the --simplify-by-decoration option