web-dev-qa-db-fra.com

git Push rejeté: erreur: échec de pousser des références

Je sais que des gens ont posé des questions similaires, mais je pense que les causes de leurs problèmes sont différentes. J'ai fait une réinitialisation matérielle parce que j'avais mal gâché mon code

 git reset --hard 41651df8fc9

J'ai apporté pas mal de modifications, quelques commits et maintenant que j'essaye de transmettre tous ces commits au serveur, le message d'erreur suivant s'affiche:

 ! [rejected]        master -> master (non-fast-forward)
error: failed to Push some refs to '[email protected]'

Git suggère de tirer un git et c'est ce que d'autres personnes ont suggéré à d'autres utilisateurs. Cependant, je crois qu’un pull git fusionnera mon code actuel avec le code que je ne veux plus (révision principale). Comment puis-je faire un Push et oublier la version/les révisions à venir?

60
Eric

git Push -f _ si vous avez la permission, mais que cela gâche tout le monde qui tire de ce dépôt, alors faites attention.

Si cela est refusé et que vous avez accès au serveur, comme canzar le dit ci-dessous, vous pouvez autoriser cela sur le serveur avec

git config receive.denyNonFastForwards false
96
blueshift

Si vous êtes la seule personne à travailler sur le projet, vous pouvez faire ce qui suit:

 git checkout master
 git Push Origin +HEAD

Ceci configurera la pointe de Origin/master sur le même commit que le master (et supprimera donc les commits entre 41651df et Origin/master)

27
ouah

Il suffit de faire

git pull Origin [branch]

et alors vous devriez pouvoir pousser.

Si vous avez vous-même des commits et que vous n'avez pas encore poussé la branche, essayez

git pull --rebase Origin [branch]

et alors vous devriez pouvoir pousser.

14
Robin Wieruch

'remote: error: refusant les références/têtes/maîtres non-rapides (vous devez tirer en premier)'

Ce message suggère qu'il existe un point d'ancrage sur le serveur qui refuse les envois rapides. Oui, cela n’est généralement pas recommandé et constitue une bonne protection, mais comme vous êtes la seule personne à l’utiliser et que vous souhaitez exécuter le push forcé, contactez l’administrateur du référentiel pour lui permettre de faire le Push non rapide en supprimant temporairement le accrocher ou vous donner la permission de le faire.

4
manojlds

Ce que j'ai fait pour résoudre le problème était:

git pull Origin [branch]
git Push Origin [branch]

Assurez-vous également que vous pointez sur la bonne branche en exécutant:

git remote set-url Origin [url]
2
Pritam Banerjee

pour moi, après avoir travaillé, il suffit de lancer ces commandes un par un

git pull -r maître d'origine

git Push -f Origin your_branch

1
Sultan Ali

J'ai suivi les étapes suivantes pour résoudre le problème. Sur la branche qui me donnait l'erreur:

  1. git pull Origin [branch-name]<current branch>
  2. Après avoir tiré, des problèmes de fusion ont été résolus, les changements ont été reportés dans la même branche.
  3. Création de la requête Pull avec la branche poussée ... tada, Mes modifications reflétaient toutes.
0
Aniket J kamble