Deux questions:
- Comment afficher les 10 premiers commit dans git du début à la fin. (pas de succursale)
- Comment spécifier l'index de validation et le consigner. (montrer le deuxième ou le troisième)
Je sais que git use parent pour lier le commit, il est facile d'enregistrer le commit de la fin au début. comme:git log HEAD~10
Mais j'ai besoin d'interroger du début à la fin, est-ce possible?
Réponses:
Enregistrez simplement tout avec un format de ligne et suivez la sortie:
la source
git rev-list HEAD | tail -n 10
pour obtenir les 10 identifiants à lister, que vous pouvez ensuite afficher dans le format de votre choix (sans se limiter à la méthode sur une ligne).tail
semble perdre la belle coloration que j'obtiens dans ma console git. Passer un paramètre commegit log --oneline -10
dans l'autre réponse fonctionne comme je m'y attendais.Affiche 10 derniers commits correspondant à la spécification de révision (une spécification manquante signifie «tous les commits»).
Voir la page de manuel:
section
Commit Limiting
la source
tail
disponibilité sur votre plateforme.first
10, pas lelatest
.Voici ma démarche,
Pour obtenir les 10 premiers commits:
-n est un nombre
Additionnel Pour obtenir les 10 prochains commit, passez les 10 premiers:
la source
Pour obtenir les 10 derniers commits:
Pour les obtenir dans l'ordre du plus ancien au plus récent:
Notez que s'il y a des fusions, cela peut afficher plus de 10 validations; ajoutez
--first-parent
si vous souhaitez uniquement traverser le premier parent de chaque branche.Pour plus de détails, consultez la documentation de
git rev-list
.Edit: Vous avez déjà obtenu une réponse utile ci-dessus pour "afficher les commits près du début de l'historique" (encore une fois, consultez les mises en garde concernant plusieurs DAG de commit non connectés dans un dépôt). Mais vous pouvez également faire, par exemple:
et:
selon l'ordre dans lequel vous souhaitez obtenir les résultats.
la source
le meilleur résultat vient avec la combinaison des deux meilleures réponses:
la source
lkj = log --pretty=oneline --abbrev-commit -10
. Maintenant, je me rends compte que cela ne répond pas à la question de l'OP, mais je suis venu ici à la recherche du simple changement de numéro.Consignez simplement tout à l'envers -1 signifie listez un journal
la source
J'utiliserais ci-dessous la commande de syntaxe simple;
la source
Parce que ... plus de détails: p
Par (pas de branche), vous pourriez poser des questions sur la
reflog
chaîne d'ascendance plutôt que sur une chaîne d'ascendance donnée. Ce qui suit n'a rien à voir avec la branche sur laquelle vous vous trouvez.git log -g --pretty=oneline | tail -10
-g
est--walk-reflogs
lieu de marcher la chaîne commettras origine, marcher entries.q reflog|cut -d ' ' -f 2|tr -d ':' > log
pour consigner uniquement l'index de validation reflog.Ce qui suit montre les premiers ancêtres de la branche actuellement extraite.
git log --reverse --pretty=oneline | head -10 | cat -n
--reverse
Sortez les validations dans l'ordre inverse.-n 10
ou-10
depuis qu'il se brise--reverse
cat -n
ajoute des numéros de ligne (index de validation?)la source
Au cas où quelqu'un voudrait plus qu'un simple journal git en une ligne:
où le
11
à la fin doit être défini sur1
plus que le nombre de validations souhaité.Comme indiqué ici ,
git log --reverse -n 10
ne fonctionne pas comme vous en avez besoin. ( Je suppose que cela devrait être non commutatif pour vous donner la possibilité de choisir les 10 premiers commits dans l'ordre inverse ou les 10 derniers commits 🤪)la source