En supposant que votre branche est appelée masterici et à distance, et que votre télécommande est appelée, originvous pouvez faire:
git reset --hard <commit-hash>
git push -f origin master
Cependant, vous devez éviter de le faire si quelqu'un d'autre travaille avec votre référentiel distant et a retiré vos modifications. Dans ce cas, il serait préférable de revenir sur les commits que vous ne voulez pas, puis de pousser comme d'habitude.
Mise à jour: vous avez expliqué ci-dessous que d'autres personnes ont retiré les modifications que vous avez poussées, il est donc préférable de créer un nouveau commit qui annule toutes ces modifications . Il y a une belle explication de vos options pour ce faire dans cette réponse de Jakub Narębski . La méthode la plus pratique dépend du nombre de validations que vous souhaitez annuler et de la méthode qui vous convient le mieux.
Depuis votre question, il est clair que vous avez déjà utilisé git reset --hardpour réinitialiser votre masterbranche, vous devrez peut-être commencer par utiliser git reset --hard ORIG_HEADpour ramener votre branche à son emplacement précédent. (Comme toujours avec git reset --hard, assurez-vous que git statusc'est propre, que vous êtes sur la bonne branche et que vous êtes git reflogun outil pour récupérer des ORIG_HEADvalidations apparemment perdues.) Vous devriez également vérifier que cela pointe vers la bonne validation, avec git show ORIG_HEAD.
Dépannage:
Si vous obtenez un message du type " ! [Rejeté à distance] a60f7d85 -> maître (crochet de pré-réception refusé) "
vous devez alors autoriser la réécriture de l'historique des branches pour la branche spécifique. Dans BitBucket, par exemple, il est dit "La réécriture de l'historique des branches n'est pas autorisée". Il y a une case à cocher nommée Allow rewriting branch historyque vous devez cocher.
origin/mastern'a pas été tiré et poussé par d'autres utilisateurs? La modification de l'historique d'un référentiel public (c'est-à-dire non local) est quelque chose que vous souhaitez éviter à tout moment.