Comment puis-je afficher une sortie de journal git avec (au moins) ces informations:
* author
* commit date
* change
Je veux qu'il soit compressé à une ligne par entrée de journal. Quel est le format le plus court possible pour cela?
(essayé --format=oneline
mais cela ne montre pas la date)
git
formatting
logging
Jesper Rønn-Jensen
la source
la source
Réponses:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
a fait le travail. Cela produit:
Inspiré par la question stackoverflow: "sortie de journal git comme svn ls -v" , j'ai découvert que je pouvais ajouter les paramètres exacts dont j'avais besoin.
Pour raccourcir la date (sans afficher l'heure), utilisez
--date=short
Au cas où vous seriez curieux de savoir quelles étaient les différentes options:
%h
= hachage de validation abrégé%x09
= tabulation (caractère pour le code 9)%an
= nom de l'%ad
auteur = date de l'auteur (le format respecte --date = option)%s
= sujetDe kernel.org/pub/software/scm /git/docs/git-log.html (section PRETTY FORMATS) par commentaire de Vivek.
la source
date=short
comme cdunn2001 le suggère dans une autre réponsegit log --pretty=format:"%h %ad%x09%an%x09%s" --date=short
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short
alias glop="git log --pretty=format:'%C(yellow)%h|%Cred%ad|%Cblue%an|%Cgreen%d %Creset%s' --date=short | column -ts'|' | less -r"
J'utilise ces deux paramètres .gitconfig:
% ad est la date de l'auteur, qui peut être remplacée par
--date
ou l'option spécifiée dans la strophe [log] dans .gitconfig. J'aime la date relative car elle donne une idée immédiate du moment où les choses ont été validées. La sortie ressemble à ceci:Tout cela est bien sûr en couleur, il est donc facile de distinguer les différentes parties d'une ligne de journal. C'est aussi la valeur par défaut lors de la frappe à
git log
cause de la section [format].MISE À JOUR 2014: Puisque git prend désormais en charge le remplissage, j'ai un bon amendement à la version ci-dessus:
Cette droite aligne les dates relatives et la gauche aligne les noms des committers, ce qui signifie que vous obtenez un aspect de colonne qui est agréable pour les yeux.
Capture d'écranMISE À JOUR 2016: Étant donné que la signature de validation GPG est en train de devenir une chose, j'ai pensé mettre à jour ce post avec une version qui inclut la vérification de signature (dans la capture d'écran, c'est la lettre magenta juste après la validation). Une brève explication du drapeau:
Les autres changements incluent:
git log -g
contient maintenant le sélecteur reflog.3 years, 4..
)%<(7,trunc)
ou consultez la fonctionnalité git .mailmap pour raccourcir les noms de commiter)Voici la configuration:
Dans l'ensemble, l'alignement des colonnes est maintenant beaucoup mieux préservé au détriment de certains caractères (espérons-le) inutiles. N'hésitez pas à modifier si vous avez des améliorations, j'aimerais que la couleur du message dépende de la signature d'un commit, mais il ne semble pas que cela soit possible en atm.
Capture d'écranla source
tig
réponse donne de l'interactivité sans configuration requise, mais celle-ci est brillante - elle donne la sortie d'une ligne demandée (avec la couleur pour démarrer!) En utilisant la commande standard `` git log ''. Très agréable.>
<
marques. J'ai essayé d'ajouter%m
au format, mais>
apparaît à chaque fois, même pour un normalgit log
. Des indices sur la façon dont les marques se comportent normalement avec le format?--oneline
n'est qu'un alias pour--pretty=oneline
.format.pretty
est le joli format par défaut, mais il n'y a aucun moyen de remplacerformat.oneline
afaik. Ce que je ferais, c'est d'omettre lapretty = shortlog
ligne dans la configuration, puis de créer un alias pour l'exécutiongit log --pretty=shortlog
.utiliser
--date=
pour définir un format de datela source
N'hésitez pas à utiliser celui-ci:
Notez le
-7
à la fin, pour n'afficher que les 7 dernières entrées.Regardez:
la source
--date=short
peut être ajouté pour le raccourcir.git log
affiche toujours l'historique de la branche actuellement extraite .%d
pour restaurer les "noms de référence" comme(HEAD -> master)
.reset
au lieu deauto
?tig est une alternative possible à l'utilisation de la commande git log , disponible sur les principales distributions open source * nix.
Sur Debian ou Ubuntu, essayez d'installer et d'exécuter comme suit:
(tig s'installe)
(le journal est affiché dans le pager comme suit, avec le hachage de la validation actuelle affiché en bas)
Étant donné que le démarquage ne prend pas en charge la coloration du texte, imaginez: colonne 1: bleu; colonne 2: vert; colonne 3: couleur du texte par défaut. Dernière ligne, mise en évidence. Appuyez sur Q ou q pour quitter.
tig
justifie les colonnes sans bords irréguliers , ce qu'un onglet ascii (% x09) ne garantit pas.Pour un format de date court, tapez D majuscule (note: d minuscule ouvre une vue diff.) Configurez-le en permanence en ajoutant
show-date = short
à ~ / .tigrc; ou dans une[tig]
section dans .git / configure ou ~ / .gitconfig.Pour voir un changement complet :
Puisque tig est distinct de git et apparemment spécifique à * nix, il faut probablement que cygwin s'installe sur Windows. Mais pour fedora Je crois que les commandes d' installation sont
$ su
,(enter root password)
,# yum install tig
. Pour freebsd essayer% su
,(enter root password)
,# pkg_add -r tig
.Soit dit en passant, tig est bon pour bien plus qu'une simple vue rapide du journal: captures d'écran et manuel
la source
tig
dans ma console me donne simplement une erreur-bash: tig: command not found
pact install tig
ou
... sur la réponse de cdunn2001 ci-dessus: je perdrais l'e-mail de l'auteur et n'inclurais que le nom de l'auteur, selon Jesper et knittl, mais conformément à l'idée de cdunn2001 de maintenir la sortie dans des colonnes de largeur constante pour faciliter la lecture ( bonne idée!). Au lieu d'une colonne séparée justifiée à gauche pour le nom de l'auteur, cependant, j'encapsule ce drapeau à la fin de la commande avec des parenthèses ou le décale avec un tuyau. (Il pourrait s'agir de n'importe quel caractère servant d'aide visuelle à la lecture de la sortie ... bien qu'il puisse être judicieux d'éviter les barres obliques avant ou arrière afin de ne pas confondre la sortie avec un répertoire ou quelque chose.)
Exemple de sortie:
la source
Utilisez un alias git prédéfini, c'est-à-dire:
Créé une fois par commande:
https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases
Ou plus coloré avec le graphique:
la source
Résultat:
Les trucs à largeur constante sont les premiers. La partie la moins importante - le domaine de messagerie - est la dernière et facile à filtrer.
la source
Pour montrer les commits que j'ai mis en scène qui sont prêts à pousser, je le fais
La sortie ressemble à quelque chose comme:
Où la première colonne apparaît en jaune, et les «H» «m» et «t» en parentesis montrent la TÊTE, le maître et le tronc et apparaissent dans leurs couleurs habituelles «- décorer»
Le voici avec des sauts de ligne pour que vous puissiez voir ce qu'il fait:
J'ai aliasé "mis en scène" avec:
(Y a-t-il un moyen plus simple d'échapper à cela? C'était un peu difficile de déterminer ce qu'il fallait échapper)
la source
Toutes les suggestions susmentionnées utilisent un
%s
espace réservé pour le sujet. Je recommande d'utiliser%B
car le%s
formatage préserve les nouvelles lignes et le message de validation de plusieurs lignes apparaît écrasé.la source
Exécutez ceci dans le dossier du projet:
Et si vous le souhaitez, ajoutez cette ligne à votre ~ / .gitconfig:
la source
Essayez git log --pretty = fuller, il vous montrera: - Auteur: Auteur Date: Commit: Commit Date:
J'espère que cela t'aides.
la source