J'ai eu une erreur et j'ai commis des modifications à git que je n'aurais pas dû commettre. Après avoir fait le commit, j'ai poussé mes changements. J'ai ensuite utilisé les commandes suivantes pour essayer de réinitialiser mes modifications.
git reset --hard head
Maintenant, je veux pousser cette "réinitialisation" vers le référentiel distant avec cette commande:
git Push MyBranch
Mais je reçois cette erreur:
remote: error: denying non-fast-forward refs/heads/branch (you should pull first)
J'ai essayé d'utiliser cette commande sans succès:
git Push -f "Origin"
Une idée de ce que je peux faire?
git Push -f Origin myBranch
devrait fonctionner (à condition que vous soyez conscient que cela peut être dangereux si MyBranch a déjà été récupéré par d'autres dans leur propre référentiel)
Remarque: si votre dépôt distant ('Origin') a son config défini avec
receive.denyNonFastForwards true
il refusera toute poussée non rapide (même forcée).
Voir " Existe-t-il un moyen de configurer le référentiel git pour rejeter 'git Push --force'? ".
Les rapports OP user654019
J'ai réussi à résoudre le problème cette fois en définissant
denyNonFastForwards
surfalse
et en utilisant-f
pour forcer le Push
Si le PO n'avait pas accès au dépôt, il/elle devrait:
git reset --hard?
"):git reset HEAD@{1}
git revert
:git revert -m 1 HEAD~
(dans ton cas)Par exemple:
$ git revert -m 1 [sha_of_C8]
Finished one revert.
[master 88edd6d] Revert "Merge branch 'jk/post-checkout'"
1 files changed, 0 insertions(+), 2 deletions(-)
Une discussion complète sur la façon d'annuler une fusion peut se trouve ici .
L'idée reste de générer uniquement de nouvelles commits, dont une annulant les modifications introduites par la validation de fusion.
Vous pouvez alors pousser ce nouveau commit, comme un changement rapide.
Vous devez spécifier quelle référence vous voulez pousser:
git Push -f Origin MyBranch