Визуализация топологии ветки в git - PullRequest
790 голосов
/ 03 декабря 2009

Я играю с git изолированно на своей собственной машине, и мне трудно поддерживать ментальную модель всех моих ветвей и коммитов. Я знаю, что могу сделать git log, чтобы посмотреть историю коммитов, откуда я нахожусь, но есть ли способ увидеть всю топографию ветки, что-то вроде этих карт ascii, которые, кажется, используются повсеместно для объяснения ветвей?

      .-A---M---N---O---P
     /     /   /   /   /
    I     B   C   D   E
     \   /   /   /   /
      `-------------'

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

Я думаю, что на меня повлиял потоковый браузер AccuRev ...

Ответы [ 28 ]

23 голосов
/ 26 апреля 2013

Я нашел "git-big-picture" довольно полезным: https://github.com/esc/git-big-picture

Он создает симпатичные 2D-графики, используя точку / graphviz вместо довольно линейных, "одномерных" представлений, которые создают gitk и друзья. С опцией -i он показывает точки ветвления и коммиты слияния, но пропускает все промежуточное.

18 голосов
/ 21 марта 2015

Посмотрите на BranchMaster .

Я написал это для визуализации сложной структуры ветвей, сворачивая все коммиты между ними в одну строку. Цифры указывают количество коммитов.

enter image description here

14 голосов
/ 18 октября 2011

Хихикает рисует красивые графики

13 голосов
/ 16 сентября 2014

Tortoise Git имеет инструмент под названием «График ревизий». Если вы работаете в Windows, это просто щелкнуть правой кнопкой мыши на вашем репозитории -> Tortoise Git -> Revision Graph.

12 голосов
/ 24 октября 2012

Я использую следующие псевдонимы.

[alias]
    lol = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all

Он содержит больше информации в цветовой схеме, чем псевдонимы, которые я видел выше. Это также кажется довольно распространенным явлением, поэтому у вас может быть шанс, что он будет существовать в окружении другого человека или упомянуть об этом в разговоре без объяснения причин.

со скриншотами и полным описанием здесь: http://blog.kfish.org/2010/04/git-lola.html

11 голосов
/ 21 апреля 2017

Никто не упоминал tig? Это не сворачивает ветви как "BranchMaster", но ...

Это быстро, работает в терминале.

Поскольку это так быстро (+ управление с клавиатуры), вы получаете отличный UX, это почти как мой "ls" для каталогов, содержащих git-репозитории.

https://jonas.github.io/tig/

Имеются обычные ярлыки, / для поиска и т. Д.

The revision graph

(ps. Это терминал на фоне этого скриншота, в наше время он выглядит лучше, но мой компьютер отказывается делать скриншот, извините)

(pps. Я тоже использую gitkraken и у меня действительно четкие визуализации, но он намного тяжелее tig)

9 голосов
/ 31 октября 2017

Для пользователей Mac: закажите (не каламбур) бесплатный инструмент с открытым исходным кодом GitUp: http://gitup.co/

Мне нравится способ отображения графиков, он понятнее, чем некоторые другие инструменты, которые я видел.

Проект находится здесь: https://github.com/git-up/GitUp

GitUp screenshot

9 голосов
/ 05 октября 2016

У меня есть git log псевдоним ~/.gitconfig для просмотра истории графика:

[alias]
l = log --all --graph --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'

С псевдонимом на месте git l покажет что-то вроде этого:

enter image description here

В Git 2.12 + вы даже можете настроить цвета линий графика, используя опцию конфигурации log.graphColors.

Что касается формата журналов, он похож на --oneline, с добавлением имени автора (относительно .mailmap) и относительной даты автора . Обратите внимание, что синтаксис %C(auto), который указывает Git использовать цвета по умолчанию для хэша коммита и т. Д., Поддерживается в Git> = 1.8.3 .

8 голосов
/ 16 сентября 2014

Я нашел это сообщение в блоге , которое показывает краткий путь:

git log --oneline --abbrev-commit --all --graph --decorate --color

Обычно я создаю псевдоним для вышеуказанной команды:

alias gl='git log --oneline --abbrev-commit --all --graph --decorate --color'

и просто используйте gl.

Вы также можете добавить псевдоним в конфиг git. Откройте ~/.gitconfig и добавьте следующую строку в [псевдоним]

[alias]
        lg = log --oneline --abbrev-commit --all --graph --decorate --color

и используйте его так: git lg

7 голосов
/ 06 июня 2018

Для тех, кто использует текстовый редактор VSCode , рассмотрим расширение Git History от D. Jayamanne:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...