Comment lire le dernier commentaire de commit?

401

Souvent lors d'un commit ( $ git -commit -m ""), je souhaite lire mon dernier commentaire pour me souvenir des progrès que j'ai réalisés. Existe-t-il un moyen simple d'accéder directement au dernier message de validation via la ligne de commande? (J'utilise Windows.)

whamsicore
la source
6
S'il s'agit d'une action régulière, créez un alias(par exemple wherewasi;-) pour la solution / ligne de commande que vous avez choisie. Vous pouvez également inclure les informations de la branche.
Philip Oakley

Réponses:

756
git show

est le plus rapide à taper, mais vous montre également la différence.

git log -1

est rapide et simple.

git log -1 --pretty=%B

si vous avez juste besoin du message de validation et de rien d'autre.

CB Bailey
la source
2
le format% B était ce dont j'avais besoin pour que le message de validation ne soit pas en retrait. Et oui, @Juh_, même si git gui ne fait pas de retour à la ligne pour vous, c'est une bonne idée d'utiliser du texte à 80 colonnes dans les messages de validation, pas une ligne par paragraphe.
Peter Cordes
4
@Juh_ Vous pouvez afficher l'intégralité du message en utilisant git log -1 --pretty=%B | cat, mais comme l'a dit Peter, vous devriez essayer de le garder à 80 caractères.
Ruckus T-Boom
3
@Juh_ c'est un peu trop tard, mais si vous voulez que le message de commit passe à la ligne, dirigez simplement la sortie vers cat ie:git log -1 --pretty= | cat
kosgeinsky
8
Si vous recherchez plus d'informations sur les espaces réservés pour cent, voir: kernel.org/pub/software/scm/git/docs/… ( faites défiler vers le bas format:<string>).
imme
3
Si vous ajoutez le format:préfixe au %Bcomme suggéré dans les documents man, il ne montrera pas de lignes vierges supplémentaires à la fin de la sortie:git log -1 --pretty=format:%B
Mariano Ruiz
84

Généralement:

git log -n

vous montrera les derniers nmessages de commit

Plus élégamment - si vous voulez un aperçu rapide de vos commits

git log --oneline -n

Cela ne montrera que la première ligne des derniers nmessages de validation.

Vous pouvez l'enregistrer en tant qu'alias git ou alias shell avec une commande plus courte. Je l'ai dans mon shell glog, par exemple, et je peux voir mes 10 derniers messages de validation avec glog -10.

Abizern
la source
23

git log -1affichera le dernier message de validation ou git log -1 --onelinesi vous souhaitez uniquement afficher le sha1 et le message de validation associé.

Gregory Pakosz
la source
Qu'en est-il de même dans mercurial?
Nevin Raj Victor
14

Vous pouvez utiliser

git show -s --format=%s

Ici --formatpermet diverses options d'impression, voir la documentation ici . Plus précisément, %ssignifie «sujet». En outre, -sreprésente --no-patch, ce qui supprime le contenu diff.

J'utilise souvent

git show -s --format='%h %s'

%hdénote un court hachage du commit

Une autre façon est

git show-branch --no-name HEAD

Il semble fonctionner plus rapidement que dans l'autre sens.

J'ai en fait écrit un petit outil pour voir l'état de tous mes repos. Vous pouvez le trouver sur github .

non
la source
OMI, c'est mieux que la réponse acceptée pour les validations multiples. Cela ne produit pas de sauts de ligne inutiles pour moi. Plusieurs validations (c.-à-d. 5 dernières) peuvent être montrées en incluant -5, c.git show -s --format=%s -5
Sigmatics
10

git log -1 branch_name vous montrera le dernier message de la branche spécifiée (c'est-à-dire pas nécessairement la branche sur laquelle vous êtes actuellement).

CJ Dennis
la source
7

Pour quelque chose d'un peu plus lisible, exécutez cette commande une fois:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

de sorte que lorsque vous exécutez ensuite:

git lg

vous obtenez une belle lecture. Pour afficher uniquement la dernière ligne:

git lg -1

Solution trouvée ici

sungiant
la source
4

Commencer avec git log -1 --pretty='%s'

Mais celui ci-dessous couvre tous les cas,

git log --pretty='format:%Creset%s' --no-merges -1

  • Pas d'espaces blancs indésirables
  • Ignorer les validations de fusion
  • Aucun ID de validation, date, affiche uniquement les messages.

Collez et voyez par vous-même

nehem
la source
3

j'ai fait ça

git reflog -1 | sed 's/^.*: //'
LukePOLO
la source
0

Je viens de découvrir une solution de contournement avec shell en récupérant la commande précédente.

Appuyez sur Ctrl-R pour afficher la commande de recherche inversée:

reverse-i-search

Ensuite, commencez à taper git commit -m , cela ajoutera ceci en tant que commande de recherche, et cela apportera le git commit précédent avec son message:

reverse-i-search`git commit -m`: git commit -m "message"

Entrer. C'est ça!

(testé dans le shell Ubuntu)

Steve S.
la source