243 votes

Comment puis-je afficher le nom des branches dans le `git log` ?

Comment puis-je montrer le nom des branches dans la sortie de git log ?

Par exemple avec, git log --graph --all J'ai une bonne vue d'ensemble des commits, mais je ne sais plus quelle ligne est master, et quelle est ma branche par exemple.

1 votes

De manière pratique, l'affichage des noms des têtes ou des balises liées semble être déjà effectué par défaut depuis que certaines versions récentes de l'application git mettre à jour.

363voto

Charles Bailey Points 244082

Essayez l'option de décoration.

git log --graph --all --decorate

Il annote les commits qui sont pointés par des tags ou des branches.

45 votes

Avec --pretty vous pouvez utiliser %d où vous voulez les "décorations".

2 votes

Je suis confus cela fait ce que je veux pour certains commits (montre la branche où le commit a été fait) mais pour beaucoup de commits, cela ne montre pas du tout le nom de la branche. Quelqu'un sait-il pourquoi cela peut être le cas ?

5 votes

@noli : Qu'attendez-vous à ce que cela montre ? Tous les commits ne sont pas des bouts de branche.

16voto

Android Control Points 317

Je cherchais quelque chose de similaire à ceci - mais je voulais savoir dans quelle branche un changement avait été effectué. J'espère que cette réponse sera également utile à d'autres personnes.

J'enquête sur un risque avec blackbox où un repo et ses branches/tags peuvent devenir indisponibles pour les utilisateurs actuels. admins lorsque suffisamment d'utilisateurs quittent un projet et que le keyrings répertoire n'a pas été religieusement basé sur le maître)

J'ai trouvé que la réponse ci-dessous était utile lorsque la keyrings le répertoire n'a pas été mis à jour depuis le maître...

En gros, ajouter --source était ce dont j'avais besoin pour afficher les branches/balises. Ajout de --name-only montrera également quel fichier a été réellement modifié.

cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings

Une autre réponse utile : Comment afficher le journal git avec le nom de la branche

0 votes

Pour moi, --source seul donne HEAD pour tous les engagements. En combinaison avec --all cela semble faire la distinction entre les différentes branches, mais les informations affichées ne sont pas celles que j'attendais : pour les modifications que j'ai effectuées en master au lieu d'obtenir refs/heads/master j'obtiens une branche privée ( refs/remotes/origin/… ). Je soupçonne que les fusions et/ou les nouvelles branches font Git perdre des informations sur l'historique.

0 votes

Au lieu de --all je peux filtrer sur les branches avec --branches --remotes=<pattern> Mais dès que deux branches sont fusionnées, Git ne dispose plus de l'information sur celle qui avait le commit au moment où il a été effectué.

7voto

Simon Points 61

Si vous utilisez oh-my-zsh comme terminal, un grand nombre d'alias git sont disponibles. Tous peuvent être vus sur leur dépôt. oh-my-zsh/plugins/git . Si vous n'utilisez pas ce terminal, vous pouvez simplement récupérer les alias et coller ceux qui vous plaisent dans votre propre environnement.

La réponse acceptée présente le git log --graph --all --decorate qui est disponible comme la commande glgga alias dans oh-my-zsh.

Personnellement, je préfère le glods alias qui se traduit par :

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X