J'essaie de personnaliser le format pour git log
. Je veux que tous les engagements soient affichés sur une seule ligne. Chaque ligne ne doit afficher que la première ligne du message de validation.
I découvert que git log --pretty=short
devrait faire l'affaire mais sur mon ordinateur, il affiche le journal complet comme git log
(en plus de l'horodatage).
De plus, j'ai essayé d'utiliser le 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 affiche le hachage raccourci %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 commit. 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 sorti Added some functionality.
précédé du hachage du shortend.
Avez-vous essayé cela?
git log --pretty=oneline --abbrev-commit
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 eu le même résultat que vous: tout le message sur une ligne.
La deuxième ligne vide est une norme dans les messages git commit. Le comportement que vous voyez a probablement été mis en œuvre volontairement.
La première ligne d'un message de validation est censée être une description courte. Si vous ne pouvez pas le faire sur une seule ligne, vous pouvez en utiliser plusieurs, mais git considère que tout ce qui précède la première ligne vide est la "description courte". oneline
affiche la description courte complète, ainsi toutes vos 3 lignes.
Est-ce que git log --oneline
fait ce que vous voulez?
Mieux et plus facile git log 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.
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
Sortie
git lg
Sortie lignes modifiées
git lg -p
Alternativement (recommandé)
Collez ce code dans le fichier global .gitconfig
[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
Lectures supplé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/
Vous pouvez définir un alias global pour pouvoir appeler un journal court de manière plus confortable:
git config --global alias.slog "log --pretty=oneline --abbrev-commit"
Ensuite, vous pouvez l'appeler en utilisant git slog
(cela fonctionne même avec l'auto-complétion si vous l'avez activé).
Ceci n’imprimera que le message (sujet seulement) sans hachage:
git log --pretty=format:%s
Sans les messages de commit, seul le hash:
git log --pretty=oneline | awk '{print $1}'