Как я могу показать имя ветки при каждом коммите в `git log`

В Gitk отображение коммита дает следующий вывод:

Author: ...
Committer: ...
Parent: ...auth/parser)
Parent: ... (Merge branch '...')
Child:  ...
Branches: remotes/me/foo, foo

Есть ли способ получить такой вывод в git log? Использование git log --graph дает аналогичную информацию, но в моем репозитории с долгоживущими ветвями может потребоваться много прокрутки, чтобы найти, на какой ветке был коммит.

(Аналогичный вопрос Как я могу показать название веток в `git log`?)


person Steve Bennett    schedule 15.05.2012    source источник


Ответы (1)


Я использую это:

git log --pretty=format:\"%h %ad [%an] %s%d\" --graph --date=short
--all --date-order

Я добавил псевдоним в свой глобальный .gitconfig

[alias]
    hist = log --pretty=format:\"%h %ad [%an] %s%d\" --graph --date=short --all --date-order

и может вызвать простой git hist

Это делает очень красивое для чтения дерево ревизий с коротким хешем коммитов, автором, датой, ветвями, HEAD и т. д. в одной строке.

person radistao    schedule 18.05.2012
comment
Я использую что-то подобное, но %d дает метки только кончику каждой ветки. Я надеялся на что-то, что будет помечать каждый коммит. - person Steve Bennett; 21.05.2012
comment
Я использую: git log --pretty='%Cblue%h%C(cyan)%d%Cred %cn %Cgreen %ar %Creset %s' - person Steve Bennett; 21.05.2012
comment
@radisto, я попробовал твою команду. Выдает ошибку: фатальная: неоднозначный аргумент '%ad': неизвестная ревизия или путь не в рабочем дереве. Используйте '--' для отделения путей от ревизий, например: 'git ‹command› [‹revision›...] -- [‹file›...]». Я использую git версии 1.9.3. - person user674669; 13.02.2015
comment
похоже, вы используете какое-то дополнительное форматирование журнала, которое неоднозначно с «% ad». см. superuser.com/questions/273570/ - person radistao; 13.02.2015
comment
Он не показывает ветки на всех коммитах, только на последних. - person peterh; 21.03.2017