Bonjour,
Je prends les devants et donc au cas où je souhaiterais annuler le dernier commit, comment procéder, j'utilise git cola pour info
merci d'avance
Bonjour,
Je prends les devants et donc au cas où je souhaiterais annuler le dernier commit, comment procéder, j'utilise git cola pour info
merci d'avance
Ubuntu fan depuis la 8.04
monnaie libre
Git cola est une IHM pour git donc tu devrais t'y retrouver dedans avec ce qui va suivre, personnellement je n'utilise que la ligne de commande et je t'invite à faire de même .
Il y a 2 manières de faire qui dépendent essentiellement de si tu as publié ou non le commit à "annuler".
Si ton commit a été publié, tu ne peux plus supprimer ce commit car cela reviendrait à détruire de l'historique de ton repository, et si quelqu'un a tiré ce commit sur son repo local vous allez vous retrouver dans un monde merdique (divergence d'historique).
Dans ce cas de figure la bonne commande est git revert HEAD. Elle aura pour effet de créer un commit supplémentaire qui sera le miroir inverse du commit à "annuler". Tu retrouves donc tes petits, il ne reste plus qu'à pousser ce commit pour les copains.
Si ton commit n'a pas été publié, alors dans ce cas tu peux le supprimer.
Un git reset HEAD^ te positionnera sur le commit précédent tout en préservant les modifications du commit supprimé. En gros seul le commit sera supprimé mais pas les modifications qui seront toujours dans ta working directory (un git status donnera une vision claire de la situation).
Un git reset --hard HEAD^ supprimera le commit à "annuler" AINSI QUE les modifications qui vont avec. C'est du nettoyage par le vide.
Pour quoi y-a-t-il un caret (^) après le HEAD avec les commandes reset et pas avec la commande revert ?
Parce que :
- HEAD désigne le dernier commit de la branche courante (celui à annuler donc)
- HEAD^ désigne le parent le plus proche de HEAD (c'est un raccourci pour HEAD^1)
- git revert <commit> désigne le commit pour lequel on veut générer un miroir inverse alors que git revert <commit> désigne le commit qui va devenir le nouveau HEAD de la branche courante, supprimant par la même tous les commits situés après.
Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.
"Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
Kenneth E. Boulding
"Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
Jean-Baptiste Say, Traité d'économie politique, 1803.
"/home/earth is 102% full ... please delete anyone you can."
Inconnu
merci Marco46 ! j'y vois plus clair maintenant !
Ubuntu fan depuis la 8.04
monnaie libre
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager