Annuler les modifications locales d'un seul fichier dans Git

John Wachira 30 janvier 2023
  1. Restaurer un fichier précédemment validé dans Git
  2. Annuler les modifications apportées aux fichiers mis en scène et non mis en scène dans Git
  3. la commande git restore
Annuler les modifications locales d'un seul fichier dans Git

Dans cet article, nous verrons comment nous pouvons utiliser des commandes telles que git checkout et git reset pour restaurer nos fichiers à une version de notre choix. Bien que Git facilite la réinitialisation des fichiers et des référentiels, le concept d’annulation des modifications dans Git est un peu plus compliqué que vous ne le pensez.

L’annulation des modifications dans un référentiel est différente de l’annulation des modifications apportées à un ensemble de fichiers sur lesquels vous travaillez localement.

Les commandes git checkout, git reset et git restore sont utiles lors de la restauration de fichiers vers une version précédente. Mais avant de plonger dans ces commandes, nous devons nous demander ; que signifie réinitialiser un fichier ?

Il convient de noter que la réinitialisation d’un fichier peut être différente pour vous dans différentes circonstances. Il se peut qu’une commande git checkout ne corresponde pas à vos attentes.

C’est différent pour les personnes qui souhaitent annuler les modifications déjà validées et celles qui souhaitent annuler les modifications de sorte que le fichier se synchronise avec le référentiel.

Voici quelques termes que vous devriez rechercher pour comprendre les différences.

  1. Arbre de travail
  2. Zone de transit
  3. Référentiel

Restaurer un fichier précédemment validé dans Git

Un cas courant est que nous avons validé un fichier et que nous voulons annuler les modifications. Nous utiliserons la commande git checkout dans un tel scénario.

Nous avons précédemment utilisé la commande pour changer de branche, mais ce n’est qu’une partie de ce qu’elle peut faire.

Nous pouvons utiliser la commande pour annuler les modifications apportées à un fichier que nous avons déjà validé. Il fera correspondre les fichiers de notre arbre de travail au fichier à tout moment de l’historique de notre dépôt.

Nous pouvons spécifier une branche, une balise et un commit.

Vous trouverez ci-dessous la meilleure façon d’exécuter la commande.

$ git checkout [commit ID] -- path/to/file

Lors de l’exécution de la commande ci-dessus, nous pointons Git vers un ID de validation spécifique dans notre référentiel. De plus, nous avons ajouté le chemin d’accès à un seul fichier.

L’exécution de la commande ci-dessus ne mettra à jour le fichier que dans notre arbre de travail. Nous devrons mettre en scène le fichier et faire un nouveau commit.

Annuler les modifications apportées aux fichiers mis en scène et non mis en scène dans Git

Notre zone de staging contient les fichiers que nous voulons valider. Pour annuler les modifications dans un fichier mis en scène, exécutez la commande git reset pour le déclasser.

$ git reset HEAD path/to/file

Nous exécutons la commande ci-dessous pour annuler les modifications locales avant de mettre en scène un fichier.

$ git checkout -- path/to/file

La commande est similaire à la première, sauf qu’elle omet notre ID de validation.

la commande git restore

Les nouvelles versions de Git nous permettent d’utiliser la commande git restore pour annuler les modifications apportées à un seul fichier.

Voici quelques-unes des façons dont nous pouvons utiliser la commande.

  1. Annuler une modification du référentiel

    $ git restore --source [commit id] path/to/file
    
  2. Désorganiser un fichier

    $ git restore --staged path/to/file
    
  3. Annuler les modifications apportées à une copie de travail

    $ git restore path/to/file
    

Nous nous retrouvons souvent à annuler des commits plutôt que de réinitialiser un seul fichier. Cependant, lorsque vous en avez besoin, c’est assez simple.

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 Checkout