Annuler les modifications dans Git

John Wachira 15 février 2024
  1. Utilisez la commande git log pour vérifier l’historique des commits dans Git
  2. Utilisez la commande git clean pour annuler les modifications dans Git
  3. Utilisez la commande git revert pour annuler les modifications dans Git
  4. Utilisez la commande git reset pour annuler les modifications dans Git
Annuler les modifications dans Git

Ce didacticiel couvre les différentes commandes permettant d’annuler les modifications apportées à vos référentiels locaux et distants. Ces commandes incluent :

  1. git clean
  2. git reset
  3. git revert

Utilisez la commande git log pour vérifier l’historique des commits dans Git

Voyons d’abord comment nous vérifions l’historique de nos commits. Nous vérifions cela à l’aide de la commande git log.

pc@JOHN MINGW64 ~/Git (main)
$ git log
commit 195e5c362975354d62ebc469da2e3cd276c7da03 (HEAD -> main)
Author: John <wachirajohnie11@gmail.com>
Date:   Mon Feb 21 12:11:12 2022 +0300
commit 7b19db4b35c1ca15e5ecb8df1f805d44aad62e5f
Author: John <wachirajohnie11@gmail.com>
Date:   Mon Feb 21 10:09:31 2022 +0300
   first commit

La commande affiche uniquement l’historique de votre branche de travail. Pour vérifier toutes les branches, utilisez la commande ci-dessous.

git log --branches=*

Utilisez la commande git checkout pour afficher un commit spécifique, comme indiqué ci-dessous.

git checkout

Vous pouvez désormais accéder aux fichiers sans altérer l’état actuel de votre projet. Utilisez la commande git checkout main pour revenir à l’espace de travail du projet en cours.

Utilisez la commande git clean pour annuler les modifications dans Git

Nous utilisons la commande git clean pour annuler les modifications sur les fichiers non suivis. Vous ne pouvez pas annuler une commande git clean.

  1. L’option git clean -n agit comme une commande d’essai. Il affiche uniquement les fichiers non suivis mais ne les supprime pas.

    Exemple:

    pc@JOHN MINGW64 ~/Git (main)
    $ git clean -n
    Would remove Hello world.txt
    Would remove Test1.txt
    
  2. La commande git clean --force supprime tous les fichiers et dossiers non suivis de votre répertoire de travail. Vous pouvez utiliser la commande .gitignore pour lancer des exceptions.

    Exemple:

    pc@JOHN MINGW64 ~/Git (main)
    $ git clean --force
    Removing Hello world.txt
    Removing Test1.txt
    

    Vérifions si les fichiers sont dans notre répertoire.

    pc@JOHN MINGW64 ~/Git (main)
    $ git status
    On branch main
    nothing to commit, working tree clean
    

    La sortie montre une branche propre. La commande a supprimé les fichiers avec succès.

Utilisez la commande git revert pour annuler les modifications dans Git

La commande git revert agit sur les modifications apportées par un commit et les écrase. Nous l’utilisons pour revenir à un point et apporter des modifications.

Utilisons la commande pour changer notre premier commit.

git revert first commit
#[first commit [7b19db4] Revert 'first commit'
#1 file changed, 1 deletion(-)

Vous devez passer une référence de validation.

Utilisez la commande git reset pour annuler les modifications dans Git

La dernière commande que nous aborderons est le git reset. Cette commande opère sur le HEAD.

  1. L’option git reset --hard modifie le commit spécifié. Cependant, toutes les modifications apportées à l’index de staging et à votre répertoire de travail correspondent aux modifications. Tous les commits mis en scène sont perdus dans le processus.

    Exemple:

    $ git reset --hard
    HEAD is now at 78129a6 Revert "$first commit"
    

    La commande exécute une réinitialisation matérielle du HEAD.

  2. La commande git reset --mixed enregistre les modifications de l’index de staging dans votre répertoire de travail.

    Exemple:

    $ git reset --mixed
    Unstaged changes after reset:
    M       .bash_history
    M       text.txt.txt
    M       text.txt.txt.bak
    

    La commande a enregistré les modifications annulées dans notre répertoire de travail à partir de la sortie. Vérifions le statut de notre branch.

    $ git status
    On branch main
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
    		modified:   .bash_history
    		modified:   text.txt.txt
    		modified:   text.txt.txt.bak
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    		.bash_history.bak
    no changes added to commit (use "git add" and/or "git commit -a")
    
  3. La commande git reset --soft ne modifie que l’historique des commits. Le pointeur par défaut est toujours le HEAD.

    Exemple:

    pc@JOHN MINGW64 ~/Git (main)
    $ git reset --soft
    pc@JOHN MINGW64 ~/Git (main)
    $ git status
    On branch main
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
    		modified:   .bash_history
    		modified:   text.txt.txt
    		modified:   text.txt.txt.bak
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    		.bash_history.bak
    no changes added to commit (use "git add" and/or "git commit -a")
    

    D’après la sortie ci-dessus, notre répertoire de travail et notre index de staging sont intacts. Utilisez le hachage de votre commit pour réinitialiser un commit spécifique.

Auteur: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Article connexe - Git Reset