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
je reçois 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.
Comme le message d'erreur le dit: git pull
avant d'essayer de git Push
. Apparemment, votre branche locale n'est pas synchronisée avec votre branche de suivi.
En fonction des règles du projet et de votre flux de travail, vous pouvez également utiliser git pull --rebase
.
Essayez ceci: git Push -f Origin master
cette commande a bien fonctionné pour moi
git Push -f Origin master
Je viens de recevoir cette erreur.
Après avoir créé mon référentiel git local, j'ai créé un référentiel github. Je devais donc accepter les modifications en local avant de passer à github. Dans ce cas, le seul changement concerne le fichier Lisez-moi créé en tant qu'étape facultative lors de la création du référentiel github.
git pull https://github.com/*username*/*repository*.git master
l'URL du référentiel est disponible à partir d'ici sur la page du projet github:
J'ai ensuite réinitialisé (cela peut ne pas être nécessaire)
git init
git add .
git commit -m "update"
Puis appuyez sur:
git Push
j'avais créé un nouveau dépôt dans github et j'avais le même problème, mais il y avait aussi un problème en tirant, donc cela a fonctionné pour moi.
mais ce n'est pas conseillé dans les pensions qui ont déjà beaucoup de codes car cela pourrait tout gâcher
git Push Origin master --force
ATTENTION:
Aller pour un 'git pull
' 'n'est pas TOUJOURS une solution, soyez donc prudent. Vous pouvez être confronté à ce problème (celui mentionné dans le document Q) si vous avez intentionnellement modifié l'historique de votre référentiel. Dans ce cas, git confond vos modifications d’historique avec les nouvelles modifications de votre référentiel distant. Donc, vous devriez opter pour un git Push --force
, car appeler git pull
annulera intentionnellement tous les changements que vous avez apportés à votre historique.
Si git pull
ne résout pas le problème, vous avez probablement appliqué vos modifications (A), après quoi 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, même s'il contient tous les changements de A.
B
/
---X---A
Si personne ne change le repo après A
, vous pouvez alors faire git Push --force
.
Cependant, s'il y a des changements après A
d'une autre personne:
B
/
---X---A---C
alors vous devez confirmer que les changements de personne de A
à B
(C
-> D
).
B---D
/
---X---A---C
ou résoudre le problème manuellement. Je ne pensais pas encore comment faire ça.
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 pas d'ancêtre commun.
C'est parce que vous avez fait quelques changements dans votre master alors le projet vous demande de tirer en premier. Si vous voulez quand même pousser, vous pouvez utiliser la force brute en tapant ceci:
git Push -f Origin master
N'oubliez pas de valider d'abord vos modifications:
git add .
git commit -m "Your commit message"
Cela m'est arrivé lorsque j'étais sur la branche develop et que ma branche master n'est pas à jour.
Donc, quand j'ai essayé de git Push de développer la branche, j'ai eu cette erreur.
Je l'ai corrigé en passant à master branch, git pull, puis à revenir pour développer Branch et git push.
$ git fetch && git checkout master
$ git pull
$ git fetch && git checkout develop
$ git Push
Essayez cette commande: "git pull Origin master"
Cela a fonctionné pour moi.
Vérifiez ce lien: https://help.github.com/articles/dealing-with-non-fast-forward-errors
! [rejeté] maître -> maître (non-avance rapide)
Ne paniquez pas, c’est extrêmement facile à corriger. Tout ce que vous avez à faire est d'émettre un pull et votre branche sera en avance rapide:
$ git pull myrepo master
Puis réessayez votre Push et tout devrait bien se passer:
$ git Push github master
J'ai eu ce problème sur une machine de développement. La branche dev
poussait bien mais la branche master
m'a donné (en git Push
ing lorsqu'elle se trouvait sur la branche dev
):
! [rejected] master -> master (non-fast-forward)
Alors j'ai essayé:
git checkout master
git pull
Ce qui m'a donné:
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either.
J'ai découvert que la branche principale manquait de .git/config
et j'ai ajouté:
[branch "master"]
remote = Origin
merge = refs/heads/master
Ensuite, git Push
fonctionnait également correctement sur la branche dev
.
Tu as besoin de faire
git branch
si la sortie est quelque chose comme:
* (no branch)
master
alors fais
git checkout master
Assurez-vous de ne pas avoir de validation en attente, car la vérification perdra toutes les modifications non validées.
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 dire cela avec ces mots, il donne donc cette erreur car il ne s'agit pas pour lui de gérer ces conflits pour vous, il vous demande donc de le faire lui-même. Comme?
1- git pull
Ceci va fusionner votre code de votre référentiel avec votre code de votre maître de site. Donc, les conflits sont montrés.
2- Traitez ces conflits manuellement.
3-
git Push Origin master
Et hop, votre problème a été résolu.
J'ai eu même comme problème. J'utilise Git Tortoise. Faites un clic droit -> Tortue Git -> Clean Up. Maintenant, vous pouvez pousser sur Github Cela a bien fonctionné avec moi: D
Le seul que j'ai pu résoudre ce problème a été de supprimer les dépôts locaux et git et de les créer à nouveau aux deux extrémités. Fonctionne bien pour l'instant.
Ma télécommande n’était pas synchronisée avec le local, cela a donc fonctionné pour moi
git pull --rebase
et assurez-vous que lorsque vous relancez git pull
, il devrait indiquer Déjà à jour et vous êtes prêt à utiliser Push to Origin
en supposant que vous avez déjà git remote add Origin remote repository URL
faire
`git Push Origin master`
Si quelqu'un a cette erreur en essayant de Push to heroku, remplacez simplement 'Origin' par 'heroku' comme ceci: git Push -f heroku master