Montrant la structure de la branche Git

Est-il un moyen pour afficher uniquement la structure de branche dans Git? Il y a un certain nombre d'outils qui montrent les commits graphiquement, mais dans mon cas, la liste est tellement longue qu'il est impossible de voir la structure. Je suppose que git log pourrait être la réponse, mais je ne trouve pas de commutateurs qui montrent seulement la ramification s'engage. Avec cette "--graph --branches --oneline-tous" pourrait faire l'affaire.

EDIT: je cherche un moyen de le faire à Ubuntu.

34
demandé sur Makis 2010-09-08 14:54:40

6 réponses

je ne suis pas sûr de ce que vous entendez par "structure de branche".

git log peut aider à visualiser les branches faites à travers commits (voir ce blog post ):

[alias]
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

alt text

mais si vous voulez seulement les différentes branches de tête, vous pouvez essayer quelque chose du genre :

heads = !"git log origin/master.. --format='%Cred%h%Creset;%C(yellow)%an%Creset;%H;%Cblue%f%Creset' | git name-rev --stdin --always --name-only | column -t -s';'"

(en column command , et ici seulement pour commits depuis le dernier origin/master commit)

Note: Jakub Narębski recommande l'ajout de l'option --simplify-by-decoration , voir sa réponse .

30
répondu VonC 2017-05-23 10:29:40

peut-être que ce que vous voulez est --simplify-by-decoration option, Voir git log documentation:

- simplifier-par-décoration

Commits qui sont visés par certaines branche ou une étiquette sont sélectionnés.

donc ce serait

git log --graph --simplify-by-decoration --all

ou à la suite VonC réponse

git log --graph --simplify-by-decoration \
   --pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
   --abbrev-commit --date=relative
26
répondu Jakub Narębski 2017-05-23 12:02:54

peut-être que je manque quelque chose, mais personne ne semble avoir mentionné gitk --all encore.

7
répondu Benjol 2010-11-29 14:24:29

la solution de base est:

git log --graph --all

Si vous voulez obtenir plus de fantaisie:

git log --graph --all --pretty=format:"%Cblue%h%Creset [%Cgreen%ar%Creset] %s%C(yellow)%d%Creset"
6
répondu cmcginty 2010-09-08 23:15:40

gitx si vous êtes sur un macOS

smartgit pour macOS ou Windows (mais je n'ai pas utilisé)

git-gui pour utiliser le natif git gui (cross-platform)

3
répondu PurplePilot 2018-08-10 09:12:26

pour obtenir plus d'informations sur la façon dont une branche particulière se rapporte à d'autres branches dans votre dépôt et les télécommandes, vous pouvez utiliser git wtf qui est un ajout sur le script de William Morgan: http://git-wt-commit.rubyforge.org /

il produit des informations sommaires comme:

$ git wtf
Local branch: master
[x] in sync with remote
Remote branch: origin/master (git@gitorious.org:willgit/mainline.git)
[x] in sync with local

Feature branches:
{ } origin/experimental is NOT merged in (1 commit ahead)
    - some tweaks i'm playing around with [80e5da1]
{ } origin/dont-assume-origin is NOT merged in (1 commit ahead)
    - guess primary remote repo from git config instead of assuming "origin" [23c96f1]

(exemple tiré de L'URL ci-dessus).

1
répondu Emil Sit 2010-09-08 14:57:00