Отношения между n git ветками - PullRequest
29 голосов
/ 14 марта 2011

Если у меня есть 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 ]

43 голосов
/ 14 марта 2011

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

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

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

17 голосов
/ 14 марта 2011

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

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

...