106 votes

Git push a échoué, "les mises à jour non rapides ont été rejetées"

J'ai édité mes référentiels GIT via Git Online. Après avoir essayé de pousser mes modifications de code local, j'ai eu une erreur:

 Git push failed, To prevent from losing history, non-fast forward updates were rejected.
 

Comment puis-je réparer cela?

139voto

iafonov Points 3270

Tirez les changements en premier:

 git pull origin branch_name
 

86voto

Matt Points 491

Ajoutez --force à votre ligne de commande si vous êtes sûr de vouloir pousser. Par exemple, utilisez git push origin --force (je recommande la ligne de commande car vous trouverez beaucoup plus de soutien auprès d’autres utilisateurs avec la ligne de commande. Cela n’est peut-être pas possible avec SmartGit.) Consultez ce site pour plus d’informations: http: / /help.github.com/remotes/

27voto

satishgoda Points 181

Avant de pousser, faire un git pull avec rebase option. Cela permettra d'obtenir les changements que vous faites en ligne (à l'origine) et de les appliquer localement, puis ajouter vos modifications locales sur le dessus de cela.

git pull --rebase

Maintenant, vous pouvez pousser à distance

git push 

Pour plus d'informations, jetez un oeil à Git rebase expliqué et Chapitre 3.6 Git Ramification de Rebasage.

5voto

hardmooth Points 140

J'ai eu le même problème.
La raison en était que ma branche locale avait perdu le suivi de son homologue distant.

Après

 git branch branch_name --set-upstream-to=origin/branch_name
git pull
 

et en résolvant les conflits de fusion, j'ai pu pousser.

1voto

Panique Points 4680

(Un) Solution pour Netbeans 7.1: Essayez un pull. Cela va probablement aussi échouer. Maintenant, jetez un coup d'oeil dans les journaux (ils sont généralement affichés maintenant dans l'EDI). Il y a une / plusieurs lignes disant:

"Le tirage a échoué à cause de ce fichier:"

Recherchez ce fichier, supprimez-le (faites une sauvegarde avant). Il s’agit généralement d’un fichier .gitignore, vous ne supprimerez donc pas de code. Refaire la poussée. Tout devrait bien fonctionner maintenant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X