J'essaie de pousser mon projet (tous les fichiers dans un nouveau référentiel). Je suis les étapes mais quand je pousse avec git push -u origin master
j'obtiens cette erreur:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
J'ai eu cette erreur plusieurs fois et je ne sais pas quoi faire.
git push --force <remote_repository>
travaillé pour moi.Réponses:
Comme l'indique le message d'erreur:
git pull
avant d'essayergit push
. Apparemment, votre branche locale n'est pas synchronisée avec votre branche de suivi.Selon les règles du projet et votre flux de travail, vous pouvez également utiliser
git pull --rebase
.la source
git push --force origin master
. Si vous rencontrez ce type de problèmes plus d'une fois dans votre vie, le flux de travail de votre projet est interrompu. Les fonctionnalités doivent être développées dans des branches et fusionnées sans avance rapide et si une fonctionnalité a "échoué", vous devez annuler le commit de fusion (de préférence, faites vos tests dans une branche d'intégration avant de fusionner une fonctionnalité à maîtriser). Aucune idée d'Eclipse cependant.git pull origin trunk:master
?AVIS: Ce n'est jamais une utilisation recommandée de git. Cela écrasera les modifications sur la télécommande. Ne faites cela que si vous savez à 100% que vos modifications locales doivent être transmises au maître distant.
Essaye ça:
git push -f origin master
la source
git help push
: "Cela peut entraîner la perte de validations du référentiel distant; utilisez-le avec précaution."cette commande a bien fonctionné pour moi
la source
Je viens de recevoir cette erreur.
J'ai créé un référentiel github après avoir créé mon référentiel git local, j'ai donc dû accepter les modifications en local avant de pousser vers github. Dans ce cas, la seule modification a été le fichier readme créé comme étape facultative lors de la création du référentiel github.
L'URL du référentiel est obtenue à partir d'ici sur la page github du projet:
J'ai ensuite réinitialisé (cela peut ne pas être nécessaire)
Appuyez ensuite sur:
la source
j'avais créé un nouveau dépôt dans github et j'avais le même problème, mais il avait aussi des problèmes lors du tirage, donc cela a fonctionné pour moi.
la source
AVERTISSEMENT:
Opter pour un '
git pull
' n'est pas TOUJOURS une solution, alors faites attention. Vous pouvez rencontrer ce problème (celui qui est mentionné dans le Q) si vous avez intentionnellement modifié l'historique de votre référentiel. Dans ce cas, git confond vos changements d'historique avec de nouveaux changements dans votre dépôt à distance. Donc, vous devriez opter pour ungit push --force
, car appelergit pull
annulera intentionnellement toutes les modifications que vous avez apportées à votre historique.la source
Si
git pull
cela ne vous aide pas, alors vous avez probablement poussé vos modifications (A) et après cela, vous avez utiliségit commit --amend
pour ajouter d'autres modifications (B). Par conséquent, git pense que vous pouvez perdre l'historique - il interprète B comme un commit différent bien qu'il contienne toutes les modifications de A.Si personne ne modifie le dépôt après
A
, vous pouvez le fairegit push --force
.Cependant, s'il y a des changements après
A
d'une autre personne:alors vous devez rebaser que les personnes passent de
A
àB
(C
->D
).ou résoudre le problème manuellement. Je ne savais pas encore comment faire ça.
la source
utilisez cette commande:
git pull --allow-unrelated-histories <nick name of repository> <branch name>
comme:
git pull --allow-unrelated-histories origin master
cette erreur se produit lorsque les projets n'ont aucun ancêtre commun.
la source
utilisez la force brute ;-) Vous essayez probablement d'ajouter un dossier local que vous avez créé avant de créer le dépôt sur git.
la source
C'est parce que vous avez fait quelques changements dans votre master, donc le projet vous demande de tirer en premier. Si vous voulez quand même le pousser, vous pouvez utiliser la force brute en tapant ceci:
N'oubliez pas de valider d'abord vos modifications:
la source
Essayez cette commande: "git pull origin master"
Ça a marché pour moi.
Vérifiez ce lien: https://help.github.com/articles/dealing-with-non-fast-forward-errors
la source
Tu as besoin de faire
si la sortie est quelque chose comme:
alors fais
Assurez-vous que vous n'avez pas de validations en attente, car le retrait perdra toutes les modifications non validées.
la source
! [rejeté] master -> master (pas d'avance rapide)
Pas de panique, c'est extrêmement facile à réparer. Tout ce que vous avez à faire est d'émettre un pull et votre branche sera en avance rapide:
$ git pull myrepo master
Réessayez ensuite votre poussée et tout devrait bien se passer:
$ git push github master
la source
Cela m'est arrivé quand j'étais sur la branche de développement et ma branche principale n'est pas avec la dernière mise à jour.
Donc, quand j'ai essayé de git push depuis la branche develop, j'ai eu cette erreur.
Je l'ai corrigé en passant à la branche principale, git pull, puis reviens pour développer la branche et git push.
la source
J'ai eu ce problème sur une machine de développement. La
dev
branche poussait bien mais lamaster
branche m'a donné (toutgit push
en étant sur ladev
branche):J'ai donc essayé:
Ce qui m'a donné:
J'ai découvert que la branche principale manquait
.git/config
et j'ai ajouté:Ensuite, il a
git push
également bien fonctionné sur ladev
branche.la source
Ma télécommande n'était pas synchronisée avec la section locale, cela a donc fonctionné pour moi
git pull --rebase
et assurez-vous que lorsque vous
git pull
recommencez, il devrait indiquer Déjà à jour et maintenant vous êtes prêt à pousser à l'origineen supposant que vous avez déjà
git remote add origin remote repository URL
faire
La capture d'écran en dit long
Vous pouvez également le faire
la source
J'avais même problème. J'utilise Git Totoise. Faites un clic droit -> TotoiseGit -> Nettoyer. Maintenant, vous pouvez pousser vers Github Cela a bien fonctionné avec moi: D
la source
En effet, vous avez apporté des modifications contradictoires à son maître. Et votre serveur de référentiel n'est pas en mesure de vous le dire avec ces mots, il donne donc cette erreur car il ne s'agit pas de lui de gérer ces conflits pour vous, il vous demande donc de le faire par lui-même. Comme?
1-
git pull
Cela fusionnera votre code de votre référentiel avec votre code de votre maître de site. Les conflits sont donc affichés.2- traiter ces conflits manualemente.
3-
Et hop, votre problème a été résolu.
la source
Le seul que j'ai pu résoudre ce problème était de supprimer le dépôt local et git et de le créer à nouveau aux deux extrémités. Fonctionne bien pour l'instant.
la source
Si quelqu'un a cette erreur en essayant de pousser vers heroku, remplacez simplement 'origin' par 'heroku' comme ceci: git push -f heroku master
la source
Essayez ça, dans mon cas ça marche
la source
Cela peut également être dû à une erreur de nom causée lors de la désignation du référentiel. Si l'une des réponses ci-dessus n'a pas fonctionné, cela a fonctionné pour moi:
Supprimez ce dépôt, créez-en un nouveau et essayez à nouveau les commandes suivantes:
si ajouter l'origine montre déjà, utilisez ceci à la place:
la source