364 votes

Comment montrer le premier commit par ' git log ' ?

J’ai un projet qui a une histoire longue. donc je wan pour montrer le premier commit sur git ?

Merci !

521voto

Nyambaa Points 2982

Merci les gars, j’ai trouvé que :

``

Il montre des validations du début.

372voto

Chris Johnsen Points 50064

Techniquement, il peut y avoir plus d'une racine de commettre. Cela se produit lorsque plusieurs antérieurement indépendantes histoires sont fusionnés. Il est fréquent que lorsqu'un projet est intégré par l'intermédiaire d'un sous-arbre de fusion.

L' git.git référentiel a six racine s'engage, dans son histoire graphique (une pour chaque Linus initiale de commettre, gitk, certaines d'abord des outils distincts, git-gui, gitweb, et git-p4). Dans ce cas, nous savons qu' e83c516 nous sont probablement intéressé. Il est à la fois la plus ancienne commettre et de la racine de la commettre.

Il n'est pas si simple dans le cas général.

Imaginez que libtruc a été en développement pendant un moment et la garde de son histoire dans un dépôt Git (libfoo.git). Indépendamment, le "bar" du projet est également en cours de développement (en bar.git), mais pas aussi longtemps libtruc (le commettre avec la date la plus ancienne en libfoo.git a une date qui précède la validation avec la date la plus ancienne en bar.git). À un certain point, les développeurs de "bar" décider de les inclure libtruc dans leur projet à l'aide d'un sous-arbre de fusion. Avant cette fusion, il aurait été banal pour déterminer la "première" de s'engager en bar.git (il n'y a probablement qu'une seule racine commettre). Après la fusion, cependant, il y a plusieurs racines s'engage et la première racine de commettre provient en fait de l'histoire de libfoo, pas de "bar".

Vous pouvez trouver toutes les racines des validations de l'histoire DAG comme ceci:

git rev-list --parents HEAD | egrep "^[a-f0-9]{40}$"

Si vous avez des balises utiles en place, alors git name-rev peut vous donner un aperçu rapide de l'histoire:

git rev-list --parents HEAD | egrep "^[a-f0-9]{40}$" | git name-rev --stdin

54voto

Mohamed Mansour Points 18019

Vous pouvez simplement inverser votre terrain et il queue juste pour le premier résultat.

13voto

Matthew Flaschen Points 131723
git log $(git log --pretty=format:%H|tail -1)

5voto

MHC Points 4483

Pas la plus belle façon de le faire, je suppose que :

Cela vous donne ensuite un certain nombre

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X