У відповіді нижче використовується git log
:
Я згадав про подібний підхід у 2009 році з " Неможливо показати дерево Git в терміналі ":
git log --graph --pretty=oneline --abbrev-commit
Але повний, який я використовував, полягає в " Як відобразити ім'я тегу та ім'я гілки за допомогою журналу git --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 себе.