lab 16 Annuler les changements déjà commités

Buts

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.

Table des matières