Question

J'abandonne! Chaque fois que j'essaie de pousser, je me fais stupide:

! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:companyX/projectX.git'

Notre équipe a une nouvelle configuration Git. Au lieu de créer des branches privées, j’ai maintenant installé notre répertoire principal (sur github) pour créer ma propre copie.

À un moment donné, ce que j'ai fait était:

$ git fetch upstream master:upstreammaster

Voici donc ma configuration actuelle ::

$ git branch
master
* upstreammaster

$ git remote -v
origin  git@github.com:userX/projectX.git
upstream    git@github.com:companyX/projectX.git

où userX est mon référentiel privé.

Je vais donc apporter quelques modifications à ma branche upstreammaster, ainsi que le code PULL de & "maître en amont &"; Tout fusionne et tout ça:

$ git pull upstream master
remote: Counting objects: 95, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 60 (delta 54), reused 0 (delta 0)
Unpacking objects: 100% (60/60), done.
From git@github.com:companyX/projectX
 * branch            master     -> FETCH_HEAD
Merge made by recursive.
stuff                      |  165 ++++++++++++--------
stuff                      |   35 ++--
stuff                       |  107 ++++++++++---
stuff                       |  105 ++++++++++---
stuff             |   24 ++--
stuff               |    9 +-
stuff                   |   53 +++----
stuff            |   44 +++---
stuff              |   52 +++----
stuff |   32 +----
stuff          |    4 +-
 stuff             |  138 ++++++++---------
stuff     |   58 ++++----
stuff    |  115 ++++++++------
stuff          |    5 +-
stuff                       |   39 ++---
stuff                        |   28 ++--
 17 files changed, 560 insertions(+), 453 deletions(-)

mais quand j'essaie de faire:

$ git push upstream master
To git@github.com:companyX/projectX.git
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:companyX/projectX.git'

Toute aide serait grandement appréciée! Si vous avez besoin d'éclaircissements, merci de demander, je vous répondrai!

Était-ce utile?

La solution

Lorsque vous effectuez un push, essayez de spécifier le refspec pour le maître en amont:

git push upstream upstreammaster:master

Autres conseils

Jarret Hardie a raison. Ou bien, commencez par fusionner vos modifications dans le masque, puis essayez le push. Par défaut, git push envoie toutes les branches dont les noms correspondent sur la télécommande - et aucune autre. Ce sont donc vos deux choix - spécifiez-le explicitement comme le dit Jarret ou fusionnez-le dans une branche commune, puis appuyez sur.

Il a été question de cela dans la liste de diffusion Git et il est clair que ce comportement n’est pas sur le point de changer prochainement - de nombreux développeurs s’appuient sur ce comportement dans leurs flux de travail.

Modifier / Précision

En supposant que votre upstreammaster branche soit prête à être utilisée, procédez comme suit:

  1. Extrayez tous les changements en amont.

    $ git pull upstream amont

  2. Basculer vers ma branche maître locale

    $ git checkout master

  3. Fusionner les modifications depuis rebase

    $ git merge upstreammaster

  4. Poussez mes modifications vers le haut

    $ git push en amont

Une autre chose que vous voudriez faire avant de pousser est de git rebase upstream/master modifier vos modifications par rapport à l'amont / maître afin que vos commits soient tous ensemble. Vous pouvez le faire séparément (git pull --rebase upstream master) ou comme étape distincte entre les étapes 1 et 2 ci-dessus (<=>) ou dans le cadre de votre traction (<=>)

.

Tout d’abord, essayez d’extraire du même refspec que vous essayez d’appliquer.

Si cela ne fonctionne pas, vous pouvez forcer une git push en utilisant git push -f <repo> <refspec>, mais soyez prudent: cette méthode peut entraîner la suppression de références sur le référentiel distant.

Première utilisation

git pull https://github.com/username/repository master

puis essayez

git push -u origin master

Votre référentiel se trouve-t-il à " en amont " un référentiel nu? J'ai la même erreur, mais quand je change à nu, cela n'arrive plus.

Si la requête Push indique Rejected (rejeter), essayez d'abord d'extraire de votre compte github, puis essayez de pousser.

Ex:

Dans mon cas, cela donnait une erreur -

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/ashif8984/git-github.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

**** Donc ce que j'ai fait était - ****

$ git pull
$ git push

Et le code a été inséré avec succès dans mon compte Github.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top