Skip to main content
  1. Learn
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Commandes et paramètres de Git
  6. Commandes de l'historique de validation de Git
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Commandes de l'historique de validation de Git


Modifier le commit et les messages précédents

$ git commit --amend

Ajoutez l'option --amend pour écraser le commit le plus récent de la branche sur laquelle vous travaillez.

En l'absence de fichiers dans un index, vous pouvez revalider le commit précédent en ajoutant l'option --amend. Vous êtes alors invité à modifier le message de validation existant.

Voir aussi:

Modifier et déplacer le commit et les messages précédents

$ git rebase -i <commit>

Si vous ajoutez un hachage de validation, vous obtenez une liste de toutes les validations jusqu'à la plus récente. Recherchez le commit que vous souhaitez modifier et modifiez cette ligne en remplaçant pick par edit, puis enregistrez et quittez.

Ajoutez ensuite l'option --amend pour valider. Un écran permettant d'ajouter un message s'affiche. Modifiez le message.

$ git commit --amend

Enfin, ajoutez l'option --continue pour exécuter un rebasage.

$ git rebase --continue

Voir aussi:

Quitter l'opération de rebasage

$ git rebase --abort

L'ajout de l'option --abort vous permet de quitter l'opération de rebasage.

Afficher le journal de référence

$ git reflog

La commande reflog vous permet d'afficher une liste des commits que HEAD indiquait précédemment.

08084a5 HEAD@{0}: commit: append description of the pull command
  99daed2 HEAD@{1}: commit: append description of the commit command
  48eec1d HEAD@{2}: checkout: moving from main to issue1
  326fc9f HEAD@{3}: commit: append description of the add command
  48eec1d HEAD@{4}: commit (initial): first commit

Les commits supprimés et aboutis collectés par l'opération de rebasage s'affichent alors.

Afficher le journal de référence de l'extrémité d'une branche

$ git reflog <ref>

Cette commande affiche une liste de commits correspondant à chacune des modifications apportées à l'extrémité de <ref>, comme indiqué ci-dessous.

445e0ae issue1@{0}: commit (merge): Merge branch 'main' into issue1
1c904bd issue1@{1}: commit (amend): modify description of the pull command
08084a5 issue1@{2}: commit: append description of the pull command
99daed2 issue1@{3}: commit: append description of the commit command
48eec1d issue1@{4}: branch: Created from 48eec1ddf73a7fb508ef664efd6b3d873631742f

L'historique de rebasage des commits supprimés et existants s'affiche alors.

Supprimer un commit précédent

$ git reset --hard HEAD~

Voir aussi:

Réinitialiser une opération de rebasage

$ git reset --hard <commit>

La commande reflog permet de rechercher des commits avant leur rebasage. Identifiez le hachage de validation ou la valeur de [HEAD@{number}] du commit survenu avant le rebasage. Dans cet exemple, 71bdfbd et HEAD@{4} sont les références au commit.

a51f8d2 HEAD@{0}: rebase -i (finish): returning to refs/heads/dev
  a51f8d2 HEAD@{1}: rebase -i (squash): update 1
  3a273e1 HEAD@{2}: rebase -i (squash): updating HEAD
  f55ef69 HEAD@{3}: checkout: moving from dev to f55ef69
  71bdfbd HEAD@{4}: commit: update 2
  f55ef69 HEAD@{5}: commit (amend): update 1

Ajoutez la valeur de hachage (71bdfbd et HEAD@{4}) à <commit> lors de l'exécution de la commande de réinitialisation.

La position de la tête de la branche est alors déplacée vers le commit avant l'exécution du rebasage. L’état de la branche est désormais identique à celui qui existait avant l’exécution du rebasage.

Annuler la réinitialisation précédente

$ git reset --hard ORIG_HEAD

ORIG_HEAD fait référence au commit avant la réinitialisation. Vous pouvez rétablir la réinitialisation précédente en effectuant une réinitialisation sur ORIG_HEAD.

Copier un commit à partir d'une autre branche

$ git cherry-pick "<commit>"

Le commit identifié par son hachage est copié dans la branche active.

Voir aussi

Rechercher un message de validation

$ git log --grep "<pattern>"

Affiche les commits contenant le texte spécifié dans <pattern>.

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life