932 votes

réinitialisation à distance à certain un commit

Je veux annuler toutes les modifications effectuées après commettre <commit-hash>. J'ai donc fait:

git reset --hard <commit-hash>

Maintenant, je veux faire la même chose avec ma télécommande. Comment puis-je faire cela? J'ai fait quelques révisions (et pousse) après l' <commit-hash> et je veux juste jeter tous. Est juste quelque chose a terriblement mal et je ne veux pas faire pire qu'elle ne l'est déjà. ;(

En gros, j'ai envie de rembobiner ma origin/master de <commit-hash>

Merci d'avance

1654voto

Mark Longair Points 93104

En supposant que votre branche est appelée master à la fois ici et à distance, et que votre télécommande est appelé origin vous pouvez faire:

 git reset --hard <commit-hash>
 git push -f origin master

Cependant, vous devriez éviter de le faire si quelqu'un d'autre est de travailler avec votre dépôt distant et a tiré vos modifications. Dans ce cas, il serait préférable de revenir les commits que vous ne voulez pas, puis de pousser normalement.

Mise à jour: vous l'ai expliqué ci-dessous que d'autres personnes ont tiré les modifications que vous avez poussé, il est donc préférable de créer un nouveau commit qui reprend l'ensemble de ces changements. Il y a une belle explication de vos options pour le faire dans cette réponse de Jakub Narębski. Lequel est le plus pratique dépend du nombre de commits que vous voulez revenir, et la méthode qui fait le plus de sens pour vous.

Car à partir de votre question, il est clair que vous avez déjà utilisé git reset --hard pour réinitialiser votre master direction générale, vous devrez peut-être commencer par utiliser git reset --hard ORIG_HEAD pour déplacer votre branche où il était avant. (Comme toujours avec git reset --hard, assurez-vous que git status est propre, que vous êtes sur la branche de droite et que vous en êtes conscient, git reflog comme un outil pour récupérer apparemment perdu s'engage.) Vous devriez également vérifier que ORIG_HEAD de points à le droit de s'engager, avec git show ORIG_HEAD.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X