13. Annuler les modifications locales avec Git : annuler et réinitialiser

Lorsque nous travaillons avec la gestion des versions de code à l'aide de Git, il est courant d'apporter des modifications que, pour une raison quelconque, nous souhaitons annuler. Que nous ayons commis une erreur ou que nous souhaitions revenir à un état antérieur du projet, Git propose des outils puissants pour annuler les modifications locales : git revert et git reset.< /p>

La commande git revert

La commande git revert est utilisée pour annuler les modifications introduites par un commit spécifique, en créant un nouveau commit avec le contenu annulé. Il s'agit d'un moyen sûr d'annuler les modifications car cela ne modifie pas l'historique du référentiel. En d'autres termes, git revert est un moyen de "remonter le temps" sans effacer l'historique de votre arrivée.

git revert [commit_hash]

Pour utiliser git revert, vous devez spécifier le hachage du commit que vous souhaitez annuler. Git créera alors un nouveau commit qui est exactement l'inverse du commit spécifié. Ceci est utile lorsque vous devez garder une trace de ce qui a été annulé, ou lorsque vous travaillez dans un référentiel partagé où la suppression de l'historique serait problématique pour les autres contributeurs.

La commande git reset

La commande git reset, en revanche, est un outil plus radical. Il est utilisé pour réinitialiser l'état actuel de votre référentiel à une validation précédente, en ignorant les modifications apportées après cette validation. Il existe trois manières principales d'utiliser git reset : --soft, --mixed et --hard.

Réinitialisation logicielle

git reset --soft [commit_hash]

--soft conserve toutes vos modifications actuelles dans l'état "modifications par étapes". Ceci est utile lorsque vous souhaitez réinitialiser le HEAD de votre référentiel à une validation précédente, mais que vous souhaitez conserver les modifications que vous avez apportées pour effectuer une nouvelle validation avec elles.

Réinitialiser le mixte

git reset --mixed [commit_hash]

--mixed est l'option git reset par défaut. Cela annulera la validation et les modifications que vous avez apportées seront conservées dans votre répertoire de travail, mais ne seront pas transférées. Cela signifie que vous devrez ajouter à nouveau les modifications avant de pouvoir les valider.

Réinitialiser dur

git reset --hard [commit_hash]

--hard est l'option la plus radicale. Cela réinitialisera le HEAD, l’index et le répertoire de travail à l’état d’un commit précédent. Toutes les modifications apportées après la validation spécifiée seront perdues. Cette option doit être utilisée avec prudence car il n'existe aucun moyen de récupérer les modifications ignorées.

Choisir entre Revenir et Réinitialiser

Le choix entre git revert et git reset dépend de la situation et de ce que vous souhaitez réaliser. Si vous travaillez sur un référentiel partagé et souhaitez annuler une validation sans affecter les autres contributeurs, git revert est le choix approprié. Si vous travaillez localement et que vous avez fait quelque chose que vous souhaitez annuler complètement, git reset pourrait être la solution.

Exemple pratique

Supposons que vous ayez pris un engagement qui, après examen, vous avez réalisé qu'il n'aurait pas dû être fait. Pour annuler ce commit, vous pouvez utiliser :

git revert [commit_hash]

Git créera un nouveau commit qui annulera les modifications du commit spécifié. Si vous souhaitez revenir à un état antérieur du projet et ignorer tous les commits effectués après un certain point, vous pouvez utiliser :

git reset --hard [commit_hash]

Cela changera l'état de votre répertoire de travail en celui du commit spécifié, annulant toutes les modifications apportées depuis.

Soyez prudent lorsque vous annulez des modifications

Il est important d'être prudent lorsque vous annulez des modifications, en particulier lorsque vous utilisez git reset --hard. Une fois les modifications supprimées avec cette option, elles ne peuvent pas être récupérées à moins que vous ne les ayez sauvegardées d'une manière ou d'une autre. Vérifiez toujours deux fois avant d'utiliser des commandes pouvant entraîner une perte de données.

Conclusion

Git est un outil puissant de contrôle de version, et comprendre comment annuler les modifications est essentiel pour gérer efficacement votre code. git revert et git reset sont des commandes précieuses qui vous donnent différents niveaux de contrôle sur l'historique de votre référentiel et l'état de votre projet. En les utilisant avec soin et compréhension, vous pouvez parcourir votre historique de code et gérer vos modifications en toute confiance.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des affirmations suivantes concernant les commandes `git revert` et `git reset` est correcte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Branchement : que sont les branches ? 14

Page suivante de lebook gratuit :

Branchement : que sont les branches ?

Temps de lecture estimé : 0 minutes

Téléchargez l'application pour obtenir une certification gratuite et écouter des cours en arrière-plan, même avec l'écran éteint.

+ 9 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

60 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours vidéo et livres
audio gratuits