Git: Voir mon dernier commit


390

Je veux juste voir les fichiers qui ont été validés lors du dernier commit exactement comme j'ai vu la liste quand je l'ai fait git commit. Recherche malheureusement pour

git "last commit" log

dans Google ne me mène nulle part. Et

git diff HEAD^..HEAD

ce n'est pas ce dont j'ai besoin, bien sûr, car cela crache aussi les tripes du changement.


35
Merci, j'avais juste besoin git diff HEAD^..HEAD!
Ameen

Réponses:


376

Comme déterminé par les commentaires, il semble que le PO recherche

$ git log --name-status HEAD^..HEAD

C'est également très proche de la sortie que vous obtiendriez de svn statusou svn log -v, que de nombreuses personnes venant de subversion vers git connaissent.

--name-statusest la clé ici; comme l'a noté d' autres personnes dans cette question, vous pouvez utiliser git log -1, git showet git diffpour obtenir le même genre de sortie. Personnellement, j'ai tendance à utiliser git show <rev>lorsque je regarde des révisions individuelles.


J'avoue que les commentaires ne sont pas la meilleure façon pour moi de clarifier ma question :) merci MikeSep
Dan Rosenstark

4
Je pense que cela donne LE dernier commit, non? Donc, pour MA dernière je feraisgit log --stat --author nroose -n 1
nroose

1
Et peut être abrégé et raccourci avec git show --name-status --oneline
jasonleonhard

C'est tellement évident! J'aurais dû deviner que c'est quelque chose de si simple, car c'est le genre de requête qui se produit tout le temps.
Scott Biggs

1
Dans le cas de l'utilisation de la force, cette commande vous montrera le dernier patch au lieu du dernier commit (dans le temps) ... pourrait être délicat dans certains cas d'utilisation
Olix

208

Utilisez git show :

git show --summary

Cela montrera les noms des fichiers créés ou supprimés, mais pas les noms des fichiers modifiés . La git showcommande prend en charge une grande variété de formats de sortie qui affichent différents types d'informations sur les validations.


1
@jamessan git show --statest proche, mais n'y a-t-il pas une vue où le mot «modifié» ou «ajouté» apparaît à côté du fichier?
Dan Rosenstark

3
Si vous voulez juste les noms des fichiers (encore moins que --stat), vous pouvez également regarder --name-statuset --name-onlybasculer.
Mike Seplowitz

1
@MikeSep, c'est en fait ce dont j'avais besoin. Si vous en faites une réponse, je la marquerai comme la meilleure réponse, car pour moi c'était le cas. J'utilisegit log --name-status HEAD^..HEAD
Dan Rosenstark

C'est de loin la solution la plus simple de celles proposées.
Matthew


44

Pour voir le dernier commit

git log -1

Pour voir les 2 derniers commit

git log -2

etc....


1
Mais la question disait "... je veux voir les fichiers qui ont été validés lors du dernier commit" .
Peter Mortensen

42

La commande la plus simple pour cela est de loin:

git show --name-only

Comme il répertorie uniquement les fichiers du dernier commit et ne vous donne pas l'intégralité des tripes

Un exemple de la sortie étant:

commit  fkh889hiuhb069e44254b4925d2b580a602
Author: Kylo Ren <Kylo@darkside.empire.gov>
Date:   Sat May 4 16:50:32 2168 -0700

Changed shield frequencies to prevent Millennium Falcon landing

 www/controllers/landing_ba_controller.js             
 www/controllers/landing_b_controller.js            
 www/controllers/landing_bp_controller.js          
 www/controllers/landing_h_controller.js          
 www/controllers/landing_w_controller.js  
 www/htdocs/robots.txt                        
 www/htdocs/templates/shields_FAQ.html       

7
Considérez --name-statusau lieu de --name-only.
Acumenus

5
Il y a le problème juste là ... l'empire utilise php pour la grille de défense!
ptim

3
Le meilleur exemple que j'ai vu sur stackoverflow! "Ce ne sont pas les engagements que vous recherchez."
Scott Biggs

22
git log -1 --name-status

Fait le travail pour moi.


21

Pour voir les dernières modifications de validation

git show HEAD

Ou pour voir l'avant-dernier changement de commit

git show HEAD~1

Et pour continuer, remplacez simplement '1' ci-dessus par le numéro de séquence de validation requis.


15

Après avoir effectué plusieurs validations ou cloné / tiré un référentiel, vous souhaiterez peut-être voir quelles validations ont été effectuées. Vérifiez simplement ces solutions simples pour voir votre historique de commit (du dernier / récent commit au premier).

Pour la dernière livraison , lancez simplement cette commande: git log -1. Pour des choses plus intéressantes voir ci-dessous -

  1. Pour voir l'ID de validation (somme de contrôle SHA-1), le nom de l'auteur <ID de messagerie>, la date avec l'heure et le message de validation -

    git log
    
  2. Pour voir d'autres statistiques, telles que les noms de tous les fichiers modifiés pendant cette validation et le nombre d'insertions / suppressions. Cela est très pratique lors de l'examen du code -

    git log --stat
    
  3. Pour voir les historiques de commit dans de jolis formats :) (Ceci est suivi de quelques options de pré-construction) -

    • Si vous avez trop de validations à réviser, cette commande les affichera sur une seule ligne nette:

      git log --pretty=oneline
      
    • Pour voir les détails courts, moyens, complets ou même plus de votre validation, utilisez respectivement les éléments suivants -

      git log --pretty=short
      git log --pretty=medium
      git log --pretty=full
      git log --pretty=fuller
      
  4. Vous pouvez même utiliser votre propre format de sortie en utilisant l' formatoption -

    git log --pretty=format:"%an, %ae - %s"
    

    où% an - nom de l'auteur,% ae - e-mail de l'auteur,% s - objet de la validation, etc.

Cela peut vous aider avec vos historiques de validation. Pour plus d'informations, cliquez ici .


11
$ git diff --nom uniquement HEAD ^ .. HEAD

ou

$ git log --name-only HEAD ^ .. HEAD

C'est à peu près ce dont j'ai besoin. Que diriez-vous de quelque chose indiquant s'il a été modifié, ajouté ou supprimé? Peut-être avec une lettre, style svn?
Dan Rosenstark

1
Je l'ai maintenant. git log --name-status HEAD^..HEAD
Dan Rosenstark

2
Au lieu de cela git log ... HEAD^..HEAD, n'est-il pas plus simple à utiliser git log ... -1 HEAD, ou mieux git show ... HEAD?
Jakub Narębski

Après avoir parcouru quelques publications Stackoverflow, voici la réponse dont j'ai besoin. Je voulais seulement les fichiers et rien d'autre. Aucun résumé de validation, uniquement les fichiers de la dernière validation. MERCI!
luckytaxi

6

git diff --stat HEAD

Cela montre le même diffstat que votre dernier commit.


4

Une autre façon de répertorier uniquement les fichiers est d'utiliser:
git diff-tree --no-commit-id --name-only -r HEAD^..HEAD
Ou vous pouvez utiliser deux ID de validation


avantages de cela à log?
Dan Rosenstark

Il s'agit essentiellement d'une manière différente de répertorier les fichiers. Je combine habituellement cela avec rsync pour le déploiement
Ismail Cherri

0

Si vous parlez de trouver la dernière et la plus grande validation après avoir effectué une vérification git d'une validation antérieure ( et oublié d'écrire le hachage de HEAD avant d'exécuter la vérification ), la plupart des éléments ci-dessus ne vous ramèneront pas à où vous avez commencé. git log - [certains #] affiche uniquement le journal de la position CURRENT de HEAD , qui n'est pas nécessairement le tout dernier commit (état du projet). Checkout déconnectera la HEAD et la pointera vers ce que vous aurez retiré.

Vous pouvez afficher l'intégralité du reflog git , jusqu'à atteindre l'entrée référençant le clone d'origine. BTW, cela ne fonctionnera pas non plus si des validations ont été effectuées entre le moment où vous avez cloné le projet et le moment où vous avez effectué un paiement. Sinon, vous pouvez espérer que toutes vos validations sur votre machine locale se trouvent sur le serveur, puis re-cloner l'intégralité du projet.

J'espère que cela t'aides.


Merci, c'est un bon point, mais la question d'origine était beaucoup plus simple et a déjà bien répondu plusieurs fois.
Dan Rosenstark
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.