J'essaie de personnaliser le format pour git log
. Je veux que tous les commits soient affichés sur une seule ligne. Chaque ligne ne doit afficher que la première ligne du message de validation.
J'ai découvert que cela git log --pretty=short
devrait faire l'affaire, mais sur mon ordinateur, il affiche le journal complet sous la formegit log
fait (en plus de l'horodatage).
De plus, j'ai essayé d'utiliser les espaces réservés définis dans la page de manuel . Cependant, je n'ai pas pu trouver de commande pour raccourcir le message du journal. J'ai essayé cette ligne git log --pretty=format:'%h : %s'
qui montre le hachage court-circuité %h
et le message complet%s
sur une seule ligne.
J'utilise git version 1.7.3.1.msysgit.0
sur Vista.
Peut-être que cela a quelque chose à voir avec la façon dont j'écris mes messages de validation. Voici un exemple:
Added some functionality.
+ Added print function in Foo class.
+ Added conversion from foo to baz.
Donc, avec l'exemple donné, je veux seulement être Added some functionality.
sorti avant le hachage de raccourci.
%s
est le sujet, pas le message complet.short
format de n'est pas sur une seule ligne, mais (surprise!)oneline
Est. Sioneline
et%h : %s
que vous ne voulez pas, qu'est-ce qui ne va pas avec eux? En particulier,%s
est le sujet, la première ligne du message de validation. Cela devrait en effet être une version abrégée. Est-il possible que vous ayez effectué des validations avec une seule longue ligne pour le message et que vous les ayez visualisées d'une manière ou d'une autre avec un habillage de mots?oneline
et%s
ne produisent pas ce que nous attendons, au moins sur mon ordinateur. J'ai mis à jour mon message avec un exemple de mon message de validation. Peut-être que ça aide.Réponses:
Avez-vous essayé cela?
Le problème est probablement qu'il vous manque une ligne vide après la première ligne. La commande ci-dessus fonctionne généralement pour moi, mais je viens de tester sur un commit sans deuxième ligne vide. J'ai le même résultat que vous: tout le message sur une seule ligne.
La deuxième ligne vide est une norme dans les messages de validation git. Le comportement que vous voyez a probablement été implémenté exprès.
La première ligne d'un message de validation est censée être une brève description. Si vous ne pouvez pas le faire sur une seule ligne, vous pouvez en utiliser plusieurs, mais git considère tout avant la première ligne vide comme la "description courte".
oneline
imprime toute la courte description, donc toutes vos 3 lignes.la source
git log
vers un script de filtrage, mais je recommanderais vraiment d'écrire une courte description avec une ligne vide.git log --oneline
--oneline est un raccourci intégré pour "--pretty = oneline --abbrev-commit" utilisé ensemble.cut
. Ce seraitawk
Ward ... (BTW math Q: quelle est la cote le bit suivant dans une séquence de Huffman correctement encodé, au niveau du stockage, est activé ou désactivé? Indice: C'est === 50%.)%
pour'%s'
. C-;Est -
git log --oneline
ce que vous voulez?la source
Un git log meilleur et plus facile en créant un alias . Collez le code ci-dessous dans le terminal une seule fois pour une session. Collez le code dans le profil zshrc ou bash pour le rendre persistant.
Production
Sortie des lignes modifiées
Alternativement (recommandé)
Collez ce code dans le fichier global .gitconfig
Lectures complémentaires.
https://coderwall.com/p/euwpig/a-better-git-log
Lecture avancée.
http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/
la source
git log --color --graph --pretty=format:"%%Cred%%h%%Creset -%%C(yellow)%%d%%Creset %%s %%Cgreen(%%cr) %%C(bold blue)<%%an>%%Creset" --abbrev-commit %1
. Vous pouvez également passer -p à ce fichier bat pour obtenir des lignes modifiéesCela imprimera uniquement le message (ligne d'objet uniquement) sans hachage :
la source
%s
pour le sujet;%b
pour le corps;%B
pour les deux ("raw body" dans git-scm.com/docs/pretty-formats )Vous pouvez définir un alias global afin d'appeler un journal court de manière plus confortable:
git config --global alias.slog "log --pretty=oneline --abbrev-commit"
Ensuite, vous pouvez l'appeler à l'aide de
git slog
(cela fonctionne même avec la saisie semi-automatique si vous l'avez activé).la source
Sans messages de validation, seul le hachage:
la source
git log --pretty=format:"%H"
git rev-list HEAD
.si vous voulez toujours utiliser
git log
de cette manière, vous pouvez ajouter un alias git engit config --global alias.log log --oneline
après cela
git log
imprimera ce qui serait normalement imprimé pargit log --oneline
la source
"log --oneline"
).