Ответ ниже использования git log:
Я упомянул похожий подход в 2009 году с « Невозможно показать дерево Git в терминале »:
git log --graph --pretty=oneline --abbrev-commit
Но полный текст, который я использовал, находится в разделе « Как отобразить имя тега и название ветви с помощью git log --graph » (2011):
git config --global alias.lgb "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit --date=relative --branches"
git lgb
Оригинальный ответ (2010)
git show-branch --list приближается к тому, что вы ищете (с заказом топо)
--topo-order
По умолчанию ветви и их коммиты отображаются в обратном хронологическом порядке.
Эта опция заставляет их появляться в топологическом порядке (т. Е. Коммиты потомков показываются перед их родителями).
Но инструмент git wtf тоже может помочь . Пример:
$ git wtf
Local branch: master
[ ] NOT in sync with remote (needs push)
- Add before-search hook, for shortcuts for custom search queries. [4430d1b] (edwardzyang@...; 7 days ago)
Remote branch: origin/master (git@gitorious.org:sup/mainline.git)
[x] in sync with local
Feature branches:
{ } origin/release-0.8.1 is NOT merged in (1 commit ahead)
- bump to 0.8.1 [dab43fb] (wmorgan-sup@...; 2 days ago)
[ ] labels-before-subj is NOT merged in (1 commit ahead)
- put labels before subject in thread index view [790b64d] (marka@...; 4 weeks ago)
{x} origin/enclosed-message-display-tweaks merged in
(x) experiment merged in (only locally)
NOTE: working directory contains modified files
git-wtf показывает вам:
- Как ваша ветка связана с удаленным репо, если это ветка отслеживания.
- Как ваша ветка относится к ветвям, не относящимся к функциям (версиям), если это ветвь функций.
- Как ваша ветка связана с ветками функций, если это ветка версий
git_tree. Он выведет что-то вродеarc flowздесь: stackoverflow.com/questions/54227968/… . Возможно, когда-нибудь я смогу объединить его с самим git.