Comment git log de toutes les branches pour l'auteur à la fois?


213

J'ai besoin d'obtenir le rapport de tous les commits que l'auteur a faits. Jusqu'à présent, j'ai le script qui encapsule la commande suivante:

git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr

Ça fonctionne bien. Cependant, il ne signale que les actions de la branche actuelle. Existe-t-il une option qui consignerait les messages de validation pour l'auteur dans toutes les branches , et pas seulement dans la branche actuelle?

En d'autres termes, git peut-il faire une séquence triée inversement (par date / heure) de toutes les validations dans le référentiel et extraire les informations de journal de cette séquence?

Résolu: (copié du commentaire ci-dessous qui est caché autrement)

Le problème était que j'ai un référentiel et deux clones pour travailler simultanément sur deux branches. J'ai poussé les modifications dans le référentiel d'origine, mais j'ai oublié de récupérer les modifications dans le référentiel cloné. De cette façon, il semblait que --allcela ne fonctionnait pas lors de son utilisation pour le référentiel cloné.


Je suppose que vous pouvez écrire un script shell pour cela: git logaccepte committishcomme premier argument: git log mybranch(et listez toutes vos branches avec git branch).
Alexander Pavlov

@AlexanderPavlov: Je ne comprends probablement pas. C'est quoi committish? Est-il possible d'obtenir les informations via une seule commande git?
pepr

1
Je reçois des commits de toutes les succursales, pas seulement de l'actuelle? Cela est attendu depuis que vous fournissez --all. Votre commande est correcte
CharlesB

1
@AlexanderPavlov: Ne vous embêtez pas avec l' git rev-listanalyse, git log --allc'est OK.
CharlesB

1
@CharlesB: C'est ce que je pensais du --all, mais cela ne fonctionne apparemment pas de cette façon pour moi. Je ne comprends pas son explication d'aide: faites comme si toutes les références refs/sont répertoriées sur la ligne de commande comme <commit>.
pepr

Réponses:


186

Votre commande est correcte, car vous utilisez le --allcommutateur qui donne toutes les validations de toutes les branches. Pour répondre à la question dans votre commentaire, cela fonctionne également dans les référentiels nus.


64

Au lieu de --allvous voudrez peut-être utiliser --branches, car --allcomprend également refs/tagset refs/remotes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.