Réinitialiser le fichier pour qu'il soit identique à la branche principale dans Git

Ashok Chapagai 13 septembre 2023
  1. Réinitialiser des fichiers à la branche “master” dans Git
  2. Réinitialiser des fichiers à un commit spécifique dans Git
  3. Conclusion
Réinitialiser le fichier pour qu'il soit identique à la branche principale dans Git

Supposons qu’il y ait un fichier important dans la branche “master” qui ne devait pas être modifié, mais hélas, il a déjà été modifié et validé plusieurs fois dans la branche “dev”. Maintenant, vous voulez annuler toutes les modifications apportées au fichier et le ramener à l’état de la branche “master”. Il y a un moyen simple d’y parvenir sans trop de tracas.

Réinitialiser des fichiers à la branche “master” dans Git

Dans Git, la commande checkout est un outil polyvalent utilisé pour différentes tâches, notamment le changement de branches, la création de nouvelles branches, la restauration de fichiers, etc.

Lorsque nous utilisons checkout pour réinitialiser des fichiers à la branche “master”, nous indiquons essentiellement à Git de remplacer le contenu des fichiers de notre branche actuelle par celui de la branche “master”.

Maintenant que nous avons une compréhension de base de Git checkout, passons aux étapes pour réinitialiser des fichiers spécifiques à la branche “master”.

Étape 1: Ouvrir un terminal

Pour commencer, ouvrez votre terminal ou votre invite de commandes. Nous utiliserons des commandes Git pour réinitialiser des fichiers, il est donc essentiel d’avoir un terminal.

Étape 2: Accéder à votre dépôt

Utilisez la commande cd pour accéder au répertoire de votre dépôt Git. Par exemple:

cd /path/to/your/repo

Remplacez /chemin/vers/votre/dépôt par le chemin réel de votre dépôt Git.

Étape 3: Vérifier votre branche actuelle

Avant d’effectuer toute réinitialisation, vérifiez que vous êtes bien sur la branche à partir de laquelle vous souhaitez réinitialiser les fichiers. Vous pouvez vérifier votre branche actuelle en utilisant la commande suivante:

git branch

Cette commande affichera une liste de branches, la branche actuellement vérifiée étant indiquée par un astérisque (*).

Étape 4: Effectuer une réinitialisation de checkout Git

Maintenant, utilisons la commande checkout pour réinitialiser des fichiers à la branche “master”. Utilisez la commande suivante:

git checkout master -- file1 file2 ...

Remplacez fichier1, fichier2, etc. par les noms des fichiers que vous souhaitez réinitialiser. Vous pouvez spécifier plusieurs fichiers en séparant leurs noms par des espaces.

Par exemple, si vous souhaitez réinitialiser deux fichiers nommés “fichier1.txt” et “fichier2.txt”, la commande serait:

git checkout master -- file1.txt file2.txt

Un examen plus approfondi de la commande checkout

  • checkout: C’est la commande Git utilisée pour différentes opérations, y compris le changement de branches et la réinitialisation de fichiers.
  • master: Cela spécifie la branche source à partir de laquelle vous souhaitez prendre les fichiers. Dans ce cas, il s’agit de la branche “master”.
  • --: Ce double tiret est utilisé pour séparer la branche ou le commit des chemins de fichiers. Il indique à Git que les éléments suivants sont des chemins de fichiers, pas des branches ou des commits.

Étape 5: Vérifier l’état

Après la réinitialisation, il est recommandé de vérifier l’état de votre répertoire de travail en utilisant:

git status

Cela vous montrera quels fichiers ont été modifiés, ajoutés ou supprimés par rapport à la branche “master”.

Étape 6: Valider vos modifications

Si vous êtes satisfait des modifications et prêt à valider, utilisez les commandes suivantes:

git add .
git commit -m "Your commit message"

Remplacez "Votre message de validation" par un message significatif décrivant vos modifications.

Réinitialiser des fichiers à un commit spécifique dans Git

Dans Git, la commande reset est utilisée pour réinitialiser la branche actuelle à un état spécifié, tel qu’un commit spécifique.

Lorsque nous utilisons reset pour réinitialiser des fichiers à un commit particulier, nous indiquons à Git de déplacer le pointeur de branche vers ce commit tout en mettant éventuellement à jour le répertoire de travail et la zone de staging (index).

Plongeons dans les étapes pour réinitialiser des fichiers spécifiques à un commit particulier dans Git.

Étape 1: Ouvrir un terminal

Commencez par ouvrir votre terminal ou votre invite de commandes. Nous utiliserons des commandes Git, il est donc essentiel d’avoir un terminal.

Étape 2: Accéder à votre dépôt

Utilisez la commande cd pour accéder au répertoire de votre dépôt Git. Par exemple:

cd /path/to/your/repo

Remplacez /chemin/vers/votre/dépôt par le chemin réel de votre dépôt Git.

Étape 3: Identifier le commit cible

Vous devez identifier le commit spécifique vers lequel vous souhaitez réinitialiser vos fichiers. Vous pouvez utiliser log pour afficher l’historique des commits et trouver le hachage du commit. Par exemple:

git log

Cette commande affichera l’historique des commits, chaque commit étant identifié par un hachage unique (une longue chaîne alphanumérique).

Étape 4: Effectuer la réinitialisation Git

Maintenant, utilisons la commande reset pour réinitialiser des fichiers spécifiques vers le commit cible. La syntaxe de base est la suivante:

git reset <commit> -- <file1> <file2> ...

Remplacez <commit> par le hachage de commit, le nom de la branche ou le nom de l’étiquette vers lequel vous souhaitez réinitialiser. Remplacez <fichier1>, <fichier2>, et ainsi de suite par les noms des fichiers que vous souhaitez réinitialiser. Vous pouvez spécifier plusieurs fichiers en séparant leurs noms par des espaces.

Par exemple, si vous souhaitez réinitialiser deux fichiers nommés fichier1.txt et fichier2.txt vers un commit avec le hachage abc123, la commande serait :

git reset abc123 -- file1.txt file2.txt

Un regard plus attentif sur la commande git reset

  • git reset : Ceci est la commande Git utilisée pour réinitialiser les branches et les fichiers.
  • <commit> : Remplacez ce paramètre fictif par le hachage de commit, le nom de branche ou le nom de l’étiquette vers lequel vous souhaitez réinitialiser vos fichiers.
  • -- : Ce double tiret est utilisé pour séparer le commit des chemins de fichiers. Il indique à Git que les éléments suivants sont des chemins de fichiers, pas des branches ou des commits.

Étape 5 : Vérifier l’état

Après la réinitialisation, il est essentiel de vérifier l’état de votre répertoire de travail en utilisant :

git status

Cela affichera les fichiers qui ont été modifiés, ajoutés ou supprimés par rapport au commit de réinitialisation.

Étape 6 : Valider vos modifications

Si vous êtes satisfait de la réinitialisation et prêt à valider, utilisez les commandes suivantes :

git add .
git commit -m "Your commit message"

Remplacez "Votre message de commit" par un message significatif décrivant les modifications introduites par la réinitialisation.

Alternative : Utiliser git checkout

Une alternative pour réaliser la même tâche peut être :

git checkout <commit_hash> <filename>

Cela permet également d’obtenir le même résultat.

Conclusion

Réinitialiser des fichiers vers la branche master dans Git est une compétence fondamentale pour tout développeur travaillant sur des projets collaboratifs.

La commande git checkout vous permet de synchroniser facilement votre travail avec les derniers changements dans la branche master.

En suivant les étapes décrites dans ce guide, vous pouvez réinitialiser vos fichiers spécifiques en toute confiance, garantissant ainsi que votre projet reste cohérent et à jour.

Rappelez-vous que Git offre divers mécanismes pour réinitialiser des fichiers, tels que git reset pour réinitialiser vers des commits spécifiques.

Chaque méthode a ses cas d’utilisation, alors choisissez celle qui convient le mieux à vos besoins.

Que vous corrigiez des erreurs ou intégriez des changements depuis la branche master, la flexibilité de Git garantit que vos flux de travail de contrôle de version restent efficaces et fiables.

Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

Article connexe - Git Reset