Afficher les commits dans une plage de dates spécifique

GitGitBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Git est un puissant système de contrôle de version qui permet aux développeurs de suivre les modifications apportées à leur base de code. L'une des fonctionnalités les plus utiles de Git est la capacité à afficher les commits (validations) dans une plage de dates spécifique. Cela peut être utile lorsque vous essayez de localiser un bogue ou de comprendre l'historique d'un projet.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/SetupandConfigGroup -.-> git/clone("Clone Repo") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/clone -.-> lab-12774{{"Afficher les commits dans une plage de dates spécifique"}} git/log -.-> lab-12774{{"Afficher les commits dans une plage de dates spécifique"}} end

Clonage du dépôt Git

Pour commencer à explorer les capacités de filtrage par plage de dates de Git, nous avons d'abord besoin d'un dépôt Git sur lequel travailler. Nous allons utiliser le dépôt git-playground fourni par LabEx.

Commençons par cloner le dépôt :

  1. Ouvrez votre terminal dans la machine virtuelle (VM) LabEx.
terminal
  1. Exécutez la commande suivante pour cloner le dépôt :
git clone https://github.com/labex-labs/git-playground

Vous devriez voir une sortie similaire à celle-ci :

Cloning into 'git-playground'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.
  1. Accédez au répertoire du dépôt :
cd git-playground

Maintenant que nous avons le dépôt sur notre machine locale, nous pouvons commencer à explorer l'historique des commits (validations).

Exploration de la commande de base git log

Maintenant que nous avons cloné notre dépôt, apprenons à afficher l'historique des commits (validations) en utilisant la commande git log.

La commande git log affiche une liste de tous les commits du dépôt, en commençant par le plus récent. Chaque entrée de commit comprend :

  • Un hachage de commit unique (identifiant)
  • Des informations sur l'auteur
  • La date et l'heure du commit
  • Le message de commit

Affichons l'historique de base des commits :

git log

Vous devriez voir une sortie similaire à ce qui suit :

commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file1.txt

commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date:   Wed Apr 26 14:16:00 2023 +0800

    Initial commit

Si la sortie est longue, vous pouvez la parcourir en utilisant :

  • Appuyez sur Espace pour avancer
  • Appuyez sur b pour reculer
  • Appuyez sur q pour quitter la vue du journal

Notez que chaque commit a un identifiant unique (la longue chaîne hexadécimale), les informations de l'auteur, la date et l'heure du commit, ainsi qu'un message décrivant les modifications apportées.

Affichage des commits dans une plage de dates spécifique

Maintenant, nous allons apprendre à filtrer les commits en fonction de dates spécifiques. Git propose deux options utiles à cet effet :

  • --since ou --after : Affiche les commits plus récents qu'une date spécifique
  • --until ou --before : Affiche les commits plus anciens qu'une date spécifique

Lorsque nous combinons ces options, nous pouvons afficher les commits dans une plage de dates spécifique.

Affichons tous les commits qui ont eu lieu entre le 25 avril 2023 et le 27 avril 2023 :

git log --since='Apr 25 2023' --until='Apr 27 2023'

Cette commande affichera tous les commits qui ont été effectués entre le 25 et le 27 avril 2023. La sortie devrait ressembler à ceci :

commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file1.txt

commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date:   Wed Apr 26 14:16:00 2023 +0800

    Initial commit

Git accepte de nombreux formats de date, notamment :

  • "YYYY-MM-DD" (par exemple, 2023-04-25)
  • "Mois JJ YYYY" (par exemple, Apr 25 2023)
  • "JJ Mois YYYY" (par exemple, 25 Apr 2023)

Essayons un autre format de date pour voir s'il y a des commits dans une autre plage :

git log --since='2023-04-20' --until='2023-04-24'

Cette commande peut ne renvoyer aucun résultat s'il n'y a eu aucun commit pendant cette période, ce qui est tout à fait normal.

Utilisation de dates relatives et d'options de formatage

Git prend également en charge les dates relatives, ce qui peut être très pratique pour afficher rapidement l'activité récente.

Affichons tous les commits des 12 dernières semaines :

git log --since='12 weeks ago'

Selon le moment où vous exécutez cette commande, vous pourriez voir tous les commits ou seulement certains d'entre eux s'ils tombent dans cette période.

D'autres formats de dates relatives utiles incluent :

  • "Il y a X jours"
  • "Il y a X mois"
  • "Hier"
  • "La semaine dernière"

Essayons d'afficher les commits de l'année dernière :

git log --since='1 year ago'

Cette commande affichera tous les commits effectués au cours de l'année écoulée.

Options de formatage supplémentaires

La commande git log propose diverses options de formatage pour personnaliser la sortie. En voici quelques-unes utiles :

  1. Pour afficher un journal plus concis avec chaque commit sur une seule ligne :
git log --oneline --since='Apr 25 2023' --until='Apr 27 2023'

La sortie ressemblera à ceci :

d22f46b (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD) Added file2.txt
cf80005 Added file1.txt
b00b937 Initial commit
  1. Pour voir les fichiers qui ont été modifiés dans chaque commit :
git log --name-status --since='Apr 25 2023' --until='Apr 27 2023'

Cette commande montre l'état des fichiers qui ont été modifiés dans chaque commit, ce qui peut être utile pour comprendre ce qui a été changé.

Ces options de formatage peuvent être combinées avec des filtres de dates pour créer des requêtes puissantes qui vous aident à mieux comprendre l'historique d'un projet.

Résumé

Dans ce laboratoire (lab), vous avez appris à afficher les commits dans une plage de dates spécifique en utilisant Git. Vous avez exploré :

  • Comment cloner un dépôt Git sur votre machine locale
  • Comment utiliser la commande de base git log pour afficher l'historique des commits
  • Comment filtrer les commits en fonction de plages de dates spécifiques en utilisant les options --since et --until
  • Comment utiliser des dates relatives telles que "Il y a 12 semaines" pour un filtrage plus flexible
  • Comment personnaliser la sortie de la commande git log avec des options de formatage

Ces compétences sont essentielles pour comprendre l'historique d'un projet, localiser des bugs et examiner le calendrier de développement d'une base de code. Au fur et à mesure que vous continuerez à travailler avec Git, ces techniques de filtrage vous aideront à naviguer facilement même dans de grands dépôts.