web-dev-qa-db-fra.com

le journal git n'affiche qu'un seul identifiant de commit

Je ai besoin d'aide. Il est possible de ne montrer qu'un seul identifiant de commit? Puisque git log -3 affiche le journal de 1 à 3, je veux juste n'en montrer que 3. Quelle commande possible correspondra à cela?

J'utilise la commande

       git log -3 --pretty=format:"%h"

le résultat est

       ffbef87
       cf0e073
       1c76c5d

Je veux seulement afficher le 1c76c5d seulement.

49
rkevx21

Vous pouvez utiliser git showfaisant référence au troisième parent de votre commit actuel (c'est-à-dire le deuxième ancêtre de HEAD). Également, git show accepte le même format que git log:

git show HEAD~2 --pretty=format:"%h" --no-patch

Mise à jour ( 2016-12-01 )

Une méthode encore meilleure serait d’utiliser le rev-parsecommande de plomberie avec le --short option permettant de produire l’identifiant de validation abrégé (7 caractères):

git rev-parse --short HEAD~2

Ou vous pouvez également spécifier la longueur exacte de l'ID de validation:

git rev-parse --short=4 HEAD~2
50
Enrico Campidoglio

Il existe un outil pour cela:

git log -3 --pretty=format:"%h" | tail -n 1

Vous pouvez inclure n caractères du hachage (au lieu de la valeur par défaut) avec l'indicateur suivant:

--abbrev=n 

Pièces pertinentes de la philosophie Unix

1) Faites que chaque programme fasse bien une chose. Pour effectuer un nouveau travail, compilez plutôt que de compliquer les anciens programmes en ajoutant de nouvelles "fonctionnalités".

2) Attendez-vous à ce que la sortie de chaque programme devienne l'entrée d'un autre programme encore inconnu. Ne pas encombrer la sortie avec des informations superflues. Évitez les formats d’entrée en colonnes ou binaires. N'insistez pas pour une entrée interactive.

... [c'est à dire.]

  • Ecrivez des programmes qui font une chose et le font bien.
  • Écrire des programmes pour travailler ensemble.

https://en.wikipedia.org/wiki/Unix_philosophy

5
DylanYoung

Depuis au moins la version 2.3.8 de Git, vous pouvez utiliser le --skip option:

   git log -1 --skip 2 --pretty=format:"%h"

Vous ne savez pas quelles versions antérieures de git prennent en charge --skip.

4
Andy