Comme vous le savez notre ESN est experte dans les domaines du web, de l’embarqué, de l'électronique et du pilotage. Et forcément, les sujets techniques nous passionnent. 🐘
Dans cet article, on vous parle de Git. Il y a quelques semaines, nous vous avions partagé un article sur “Git et ses nouveautés”.
Aujourd’hui, nous vous parlons des commandes Git revert ou Git reset. Si vous êtes développeur web ou que vous avez l’habitude d’utiliser Git, on vous laisse découvrir l’article juste ici 👇
Pour des raisons de régression, d’un commit fait par erreur,... on est souvent amené à faire un git revert ou git reset lorsque l'on veut annuler un ou plusieurs commits d'un projet géré par git.
1️⃣/ Git reset
La commande git reset est un outil complexe et polyvalent pour annuler les changements.
git reset permet de revenir en arrière à un commit particulier(n) et de supprimer tous les commits au-dessus de (n) et perdre probablement tout le travail lié à ce commit de façon définitive en fonction de l'option choisie.
Supposons que l'on a les commits suivants:
commit1 --> n --> commit2 -->commit3 --> commit4 --> commit5
git reset <id du commit>. L'option --hard n'étant pas utilisée, les fichiers modifiés par les commits de 5 à 2 sont maintenus en local. Les commits sont supprimés et le résultat est le suivant: commit1 -->n.
Le risque que l'on a d'utiliser git reset est de supprimer les commits au-dessus et qu'il soit impossible de les récupérer par la suite.
2️⃣/ Git revert
Avec la commande git revert, au lieu de supprimer le commit de l’historique du projet, elle détermine comment annuler les changements par le commit et ajoute un nouveau commit avec le contenu ainsi obtenu. Ainsi git ne perd pas l’historique, lequel est important pour l’intégrité de votre historique de révision et pour une collaboration fiable 😉
git revert permet de revenir en arrière à un commit particulier(n) sans supprimer tous les commits au-dessus de (n). git revert crée un nouveau commit sans supprimer les anciens commits.
Supposons que l'on a les commits suivants:
commit1 --> n --> commit2 -->commit3 --> commit4 --> commit5 {nous sommes au commit5 } Nous souhaitons annuler les commit5, commit4, commit3, commit2.
git revert <id commit >
👉 Remarque : les commits les plus anciens sont mentionnés et on a le résultat suivant:
commit1 --> n --> commit2 -->commit3 --> commit4 --> commit5 --> {nouveau commit}.
Le gros avantage de git revert est que l'on ne perd rien dans l'historique. Les changements introduits par des commits (de 2 à 5) ont disparu mais les commits sont toujours présents donnant la possibilité de revenir en arrière en cas de besoin.
Le mot de la fin ✔️
Nous pouvons vous recommander d'utiliser git revert et non git reset parce que il vaut mieux avoir une arborescence moins esthétique plutôt que de perdre des heures voir des jours de travail. Avec la commande git revert, il est recommandé de renseigner un message significatif qui indique l'id du commit faisant l'objet de revert et la raison.