lab 16 Annuler les changements déjà commités
Buts
- Apprendre comment annuler revenir sur les changements qui ont déjà
été commités sur le dépôt local.
Annuler des commits 01
Parfois vous réalisez qu’un changement que vous avez déjà commité n’était pas correct et vous souhaitez annuler ce commit. Il y a plusieurs façons de gérer ce problème, et la manière dont nous allons faire cela dans cette partie du tutoriel est toujours sûre.
Essentiellement nous allons annuler le commit en créant un nouveau commit qui inverse les changements non voulus.
Changer le fichier et le commiter. 02
Changer le fichier bonjour.rb
de la manière suivante.
File: bonjour.rb
# C'est un changement non voulu mais déjà commité name = ARGV.first || "Monde" puts "Bonjour, #{name}!"
Execute:
git add bonjour.rb git commit -m "Oups, nous ne voulions pas ce commit"
Créer un commit de retour en arrière 03
Pour annuler un changement commité, nous avons besoin de générer un commit qui annule les changements introduits par notre commit non voulu.
Execute:
git revert HEAD
Cela va vous ouvrir votre éditeur de texte. Vous pouvez éditer le message de commit par défaut ou le laisser tel quel. Sauver et fermer le fichier. Vous devriez voir …
Output:
$ git revert HEAD --no-edit [master 412434e] Revert "Oups, nous ne voulions pas ce commit" 1 file changed, 1 insertion(+), 1 deletion(-)
Comme nous étions en train d’annuler le dernier commit que nous avions fait, nous avons été capable d’utiliser HEAD
comme argument pour annuler. Nous pouvons annuler n’importe quel commit de manière arbitraire plus ancien dans l’historique en spécifiant simplement la valeur de son hash.
Note: Le --no-edit
dans la sortie peut être ignoré. Il était nécessaire de générer la sortie sans ouvrir l’éditeur.
Vérifier le log 04
Vérifier que le log montre à la fois les commits non désirés et ceux de correction des commits non désirés dans notre répertoire.
Execute:
git hist
Output:
$ git hist * 412434e 2014-02-21 | Revert "Oups, nous ne voulions pas ce commit" (HEAD, master) [Jim Weirich] * 83f893e 2014-02-21 | Oups, nous ne voulions pas ce commit [Jim Weirich] * a9c6007 2014-02-21 | Ajout d'un commentaire (v1) [Jim Weirich] * 221243e 2014-02-21 | Ajouter une valeur par défaut (v1-beta) [Jim Weirich] * 80fc666 2014-02-21 | Using ARGV [Jim Weirich] * 834ca4f 2014-02-21 | Mon premier commit [Jim Weirich]
Cette technique fonctionnera avec n’importe quel commit (même si vous allez peut être devoir résoudre des conflits). C’est sûr pour être utilisé même sur les branches qui sont partagées sur des dépôts distants.
Quoi de plus 05
Maintenant, allons regarder une technique qui peut être utilisée pour enlever les commits les plus récents de l’historique du dépôt.