Отношения между 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

2 ответа

Решение

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

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

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

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

gitk A C D

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

http://mythic-beasts.com/~mark/gitk-screenshot.png


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

gitk --simplify-by-decoration A C D

Снимок экрана gitk с опцией - упрощать по украшению

Другие вопросы по тегам