Ces trois commandes ont des objectifs entièrement différents. Ils ne sont même pas à distance similaires.
git revert
Cette commande crée un nouveau commit qui annule les modifications d'un commit précédent. Cette commande ajoute un nouvel historique au projet (elle ne modifie pas l'historique existant).
git checkout
Cette commande extrait le contenu du référentiel et le place dans votre arborescence de travail. Il peut également avoir d'autres effets, selon la façon dont la commande a été invoquée. Par exemple, il peut également changer la branche sur laquelle vous travaillez actuellement. Cette commande n'apporte aucune modification à l'historique.
git reset
Cette commande est un peu plus compliquée. Il fait en fait deux ou trois choses différentes selon la façon dont il est invoqué. Il modifie l'index (ce que l'on appelle la "zone de transit"). Ou il change le point sur lequel un chef de branche est actuellement pointé. Cette commande peut modifier l'historique existant (en modifiant le commit référencé par une branche).
Utilisation de ces commandes
Si une validation a été effectuée quelque part dans l'historique du projet et que vous décidez plus tard que la validation est incorrecte et qu'elle n'aurait pas dû être effectuée, git revert
l'outil de travail est alors l'outil. Il annulera les modifications apportées par le mauvais commit, enregistrant l '"annulation" dans l'historique.
Si vous avez modifié un fichier dans votre arborescence de travail, mais que vous n'avez pas validé la modification, vous pouvez utiliser git checkout
pour extraire une copie fraîche du référentiel du fichier.
Si vous avez fait un commit, mais ne l'avez partagé avec personne d'autre et que vous décidez de ne pas le vouloir, vous pouvez utiliser git reset
pour réécrire l'historique afin qu'il semble que vous n'ayez jamais fait ce commit.
Ce ne sont là que quelques-uns des scénarios d'utilisation possibles. Il existe d'autres commandes qui peuvent être utiles dans certaines situations, et les trois commandes ci-dessus ont également d'autres utilisations.