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

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

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

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

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

Ответы [ 28 ]

6 голосов
/ 03 декабря 2009

Gitx - также фантастический инструмент визуализации, если вы используете OS X.

6 голосов
/ 21 декабря 2012

Мой личный любимый псевдоним через .gitconfig:

graph = log --graph --color --all --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%x20(%ce)%n%x20%s%n"
6 голосов
/ 16 июля 2015

Другая команда git log. Этот с столбцами фиксированной ширины :

git log --graph --pretty=format:"%x09%h | %<(10,trunc)%cd |%<(25,trunc)%d | %s" --date=short
5 голосов
/ 16 октября 2012

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

2 голосов
/ 28 декабря 2015

В Windows есть очень полезный инструмент, который вы можете использовать: расширения git. Это инструмент с графическим интерфейсом, который упрощает операции с git.

Также это с открытым исходным кодом.

http://gitextensions.github.io

1 голос
/ 03 августа 2018

мы можем сделать это сложнее?

Как насчет простого git log --all --decorate --oneline --graph (запомнить A Dog = --Все --Украсить --Oneine --Graph)

1 голос
/ 20 апреля 2015

Я пробовал --simplify-by-decoration, но все мои слияния не отображаются. Поэтому я вместо этого просто обрезаю строки без символов «\» и «/» в заголовках, сохраняя при этом строки со знаком «(», указывающим ветви сразу после этого. При отображении истории веток я вообще не заинтересован в комментариях к коммитам, поэтому Я тоже их удаляю и получаю следующий псевдоним оболочки.

gbh () { 
    git log --graph --oneline --decorate "$@" | grep '^[^0-9a-f]*[\\/][^0-9a-f]*\( [0-9a-f]\|$\)\|^[^0-9a-f]*[0-9a-f]*\ (' | sed -e 's/).*/)/'
}
0 голосов
/ 20 апреля 2018

Официальный сайт Git привлек некоторые сторонние инструменты графического интерфейса для платформы. Всем привет git GUI Tools для платформы Linux

Я использовал gitg и GitKraken для платформы Linux. И то, и другое хорошо, чтобы понять дерево коммитов

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