web-dev-qa-db-fra.com

maître rejeté -> maître (sans avance rapide)

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.

182
Asantoya17

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.

140
pmr

Essayez ceci: git Push -f Origin master

136
a_shahmatov

cette commande a bien fonctionné pour moi

git Push -f Origin master
15
raed

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:

enter image description here

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
11
blue-sky

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
8
Muneef M

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.

8
Gupta

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.

7
Alexander Volkov

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.

6
Umar Farooq

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"
5
Guim Gonzalez

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
4
Jonn Marc Vistal

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

4
firefly28

! [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

4
user3292712

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 Pushing 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.

3
guaka

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.

3
cage

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

1
Son Nguyen Thanh

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.

0
Akash Kumar Sharma

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`  

La capture d'écran dit tout enter image description here

0
maheshmnj

Si quelqu'un a cette erreur en essayant de Push to heroku, remplacez simplement 'Origin' par 'heroku' comme ceci: git Push -f heroku master

0
Vadim Malakhovski