git push rejeté

J’abandonne! Chaque fois que j’essaie de pousser, je suis 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 de git. Au lieu de créer des twigs privées, j’ai maintenant utilisé notre repository principal (sur github) pour créer ma propre copie.

A un moment donné, j’ai fait ce qui suit:

 $ git fetch upstream master:upstreammaster 

Alors voici 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 repository privé.

Je vais donc apporter quelques modifications à ma twig upstreammaster, et le PULL de “upstream master”. Tout se confond 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 très appréciée! Si vous avez besoin de précisions, demandez, je répondrai!

En faisant un push, essayez de spécifier le refspec pour le maître en amont:

 git push upstream upstreammaster:master 

Jarret Hardie a raison. Ou, d’abord fusionner vos modifications en master et ensuite essayer la poussée. Par défaut, git push pousse toutes les twigs qui ont des noms correspondants sur la télécommande – et pas les autres. Donc, ce sont vos deux choix – spécifiez-le explicitement comme dit Jarret ou fusionnez-le à une twig commune, puis appuyez sur.

Il y a eu des discussions à ce sujet sur la liste de diffusion Git et il est clair que ce comportement n’est pas sur le sharepoint changer de sitôt – de nombreux développeurs comptent sur ce comportement dans leurs stream de travail.

Edition / Clarification

En supposant que votre twig de gestionnaire upstreammaster est prête à pousser, vous pouvez le faire:

  1. Tirez des changements de l’amont.

    $ git tirer le maître en amont

  2. Basculer vers ma twig maître locale

    $ git checkout master

  3. Fusionner les modifications de upstreammaster

    $ git merge upstreammaster

  4. Poussez mes changements vers le haut

    $ git pousser en amont

Une autre chose que vous voudrez peut -être faire avant de pousser est de rebase vos modifications par rapport à l’amont / le maître afin que vos commits soient tous ensemble. Vous pouvez soit le faire comme une étape séparée entre # 1 et # 2 ci-dessus ( git rebase upstream/master ) ou vous pouvez le faire dans le cadre de votre pull ( git pull --rebase upstream master ).

Tout d’abord, essayez de tirer de la même refspec que vous essayez de pousser.

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

première utilisation

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

puis essayez

git push -u maître d’origine

Votre repository sur “en amont” est-il un repository nu? J’ai eu la même erreur, mais quand je me change, ils ne se produisent plus.

Si la demande de diffusion est affichée Rejeté, essayez d’abord de tirer sur votre compte github, puis essayez de pousser.

Ex:

Dans mon cas, c’était donner 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: (eg, 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

**** Alors ce que j’ai fait était – ****

 $ git pull $ git push 

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