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?
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
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)
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.
'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.
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]
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
J'ai suivi les étapes suivantes pour résoudre le problème. Sur la branche qui me donnait l'erreur:
git pull Origin [branch-name]<current branch>