web-dev-qa-db-fra.com

Comment afficher le journal git avec la première ligne uniquement?

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 %het 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.

289
JJD

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.

473
Gauthier

Est-ce que git log --oneline fait ce que vous voulez?

136
9000

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/

34
atilkan

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é).

25
That Brazilian Guy

Ceci n’imprimera que le message (sujet seulement) sans hachage:

git log --pretty=format:%s
17
technophyle

Sans les messages de commit, seul le hash:

git log --pretty=oneline | awk '{print $1}'
8
otiai10