Git push échoué, “Non-avance rapide des mises à jour ont été rejetées”
J'ai édité mon dépôts GIT via Git en Ligne. Après j'ai essayé de pousser mon local des modifications de code, j'ai une erreur:
Git push failed, To prevent from losing history, non-fast forward updates were rejected.
Comment puis-je résoudre ce problème?
- Double de qu'est Ce qu'un "fast-forward" dans Git?
Vous devez vous connecter pour publier un commentaire.
Pull changements:
git pull
? La distance est égale àorigin
, de sorte qu'il fonctionne actuellement:git pull origin
. Ne devrait-elle pas de mise à jour de toutes les branches?Ajouter l'option --force à votre ligne de commande si vous êtes sûr que vous voulez faire. E. g. utilisation
git push origin --force
(je recommande la ligne de commande que vous trouverez beaucoup plus de soutien de la part d'autres utilisateurs avec la ligne de commande. Aussi cela peut ne pas être possible avec SmartGit.) Voir ce site pour plus d'informations: http://help.github.com/remotes/--force
si vous êtes le seul à utiliser cette branche. Il provoque des problèmes lors du partage d'une branche avec d'autres développeurs, cependant.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.
Maintenant, vous pouvez pousser à distance
Pour plus d'informations, jetez un oeil à Git rebase expliqué et Chapitre 3.6 Git Ramification De Rebasage.
git pull --rebase
se termine avecThere is no tracking information for the current branch. Please specify which branch you want to rebase against.
J'ai rencontré la même erreur, il suffit d'ajouter "--force" à la commande, il fonctionne
--force
peut être utile.J'ai eu le même problème.
La raison en était que ma branche locale avait en quelque sorte perdu le suivi de l'homologue distant.
Après
et la résolution de la fusion des conflits, j'ai été en mesure de pousser.
Vous pouvez ajouter --force-avec-bail à la commande, ça fonctionne.
--force est destructeur, car il inconditionnellement remplace le dépôt distant avec ce que vous avez à l'échelle locale. Mais --force-avec-bail de vous assurer de ne pas écraser les autres.
Voir plus d'informations ici.
(Une) Solution pour Netbeans 7.1: Essayer un pull. Ce sera probablement aussi échouer. Maintenant, jetez un oeil dans les logs (ils sont généralement présentés aujourd'hui dans l'IDE). Il y a un ou plusieurs ligne en disant:
"Pull a échoué en raison de ce fichier:"
Recherche de ce fichier, le supprimer (faire une sauvegarde avant). Habituellement, il est un .gitignore fichier, vous ne pourrez pas supprimer le code. Refaire le pousser. Tout devrait fonctionner correctement maintenant.
À l'aide de la
--rebase
option a fonctionné pour moi.git pull <remote> <branch> --rebase
Puis poussez vers le repo.
git push <remote> <branch>
E. g.
git pull origin master --rebase
git push origin master
Je l'ai ai le même problème.
J'ai résolu avec
checkout
va remplacer ces changements, ou au moins de ne pas les inclure dans la poussée.C'est ce qui a fonctionné pour moi. Il peut être trouvé dans git documentation ici
Si vous êtes sur votre branche désirée, vous pouvez le faire:
Rencontré le même problème, pour le résoudre, exécutez la commande suivante
git
commandes.git pull {url} --rebase
git push --set-upstream {url} master
Vous devez avoir créé le repository sur github premier.
Parfois, tout en prenant un pull à partir de votre git, la TÊTE est détachée. Vous pouvez le vérifier en entrant la commande:
C'est mieux de le passer à votre succursale et de prendre un nouveau tirez de votre succursale.