Existe-t-il un moyen d'afficher uniquement la structure de branche dans Git? Il existe un certain nombre d'outils qui affichent graphiquement les validations, mais dans mon cas, la liste est si longue qu'il est impossible de voir la structure. Je suppose que git-log pourrait être la réponse, mais je ne trouve aucun commutateur qui affiche uniquement les validations de branchement. Ceci avec "--graph --branches --oneline --all" pourrait faire l'affaire.
EDIT: Je cherche un moyen de le faire dans Ubuntu.
Je ne suis pas sûr de ce que vous entendez par "structure de branche".git log
peut aider à visualiser les branches créées grâce aux commits (voir ceci article de blog ):
[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"
Mais si vous ne voulez que les différentes branches HEAD, vous pouvez essayer quelque chose dans le sens de :
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 utilisant le column command
, et ici uniquement pour les validations depuis le dernier Origin/master
commit)
Remarque: Jakub Narębski recommande d'ajouter l'option --simplify-by-decoration
, voir sa réponse .
Peut-être que ce que vous voulez, c'est --simplify-by-decoration
option, voir git log documentation:
- simplifier par décoration
Les validations référencées par une branche ou une balise sont sélectionnées.
Ce serait donc
git log --graph --simplify-by-decoration --all
ou suivant réponse VonC
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
Peut-être que je manque quelque chose, mais personne ne semble avoir mentionné gitk --all
encore.
La solution de base est:
git log --graph --all
Si vous voulez devenir plus chic:
git log --graph --all --pretty=format:"%Cblue%h%Creset [%Cgreen%ar%Creset] %s%C(yellow)%d%Creset"
Pour obtenir plus d'informations sur la façon dont une branche particulière est liée aux autres branches de votre référentiel et de vos télécommandes, vous pouvez utiliser git wtf
qui est un script complémentaire de William Morgan: http://git-wt-commit.rubyforge.org/
Il produit des informations résumées comme:
$ git wtf
Local branch: master
[x] in sync with remote
Remote branch: Origin/master ([email protected]: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).