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
.