Frage

Ich gebe auf! Immer, wenn ich zu schieben versuchen, erhalte ich eine dumme:

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

Unser Team hat einen neuen Git-Setup. Stattdessen private Zweige machen jetzt ich unsere Repository Gespaltene (auf Github) meine eigene Kopie zu erstellen.

An einem gewissen Punkt, was ich tat, war:

$ git fetch upstream master:upstreammaster

So, hier ist meine aktuelle Setup ::

$ git branch
master
* upstreammaster

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

Dabei gilt UserX mein privates Repository ist.

Also gehe ich und einige Änderungen an meinem upstreammaster Zweig machen, und die PULL von „upstream Master“. Alles verschmilzt und so:

$ 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(-)

aber dann, wenn ich versuche zu tun:

$ 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'

Jede Hilfe wäre greately geschätzt! Wenn Sie Klärung bedürfen bitte fragen, ich werde antworten!

War es hilfreich?

Lösung

Wenn Sie eine Push tun, versuchen Sie die Refspec für den Upstream-Master festgelegt wird:

git push upstream upstreammaster:master

Andere Tipps

Jarret Hardie ist richtig. Oder fusionieren zuerst Ihre Änderungen zurück in Master und dann die Push versuchen. Standardmäßig drückt git push Alle Branchen, die Namen haben, die auf der Fernbedienung übereinstimmen - und keine andere. Das sind also Ihre zwei Möglichkeiten - entweder angeben explizit wie Jarret gesagt oder zu einem gemeinsamen Zweig wieder zusammenführen und dann drücken Sie

.

Es gab dazu auf der Git Mail-Liste reden und es ist klar, dass dieses Verhalten nicht im Begriff ist, in absehbarer Zeit zu ändern -. Viele Entwickler in ihren Arbeitsabläufen auf dieses Verhalten verlassen

Bearbeiten / Klarstellung

Ihre upstreammaster Zweig Unter der Annahme bereit ist, zu schieben, dann können Sie dies tun:

  1. Ziehen in Änderungen von der vorgeschalteten.

    $ git ziehen Upstream-Master

  2. Zum meinem lokalen Master-Zweig

    $ git checkout master

  3. Merge Änderungen von upstreammaster

    $ git merge upstreammaster

  4. drücken meine Änderungen nach oben

    $ git Push Upstream

Eine andere Sache, die Sie können tun wollen, bevor drücken ist, um die Änderungen gegenüber Vorlieferanten / Master rebase, so dass Ihre Commits alle zusammen sind. Sie können entweder tun, dass in einem separaten Schritt zwischen # 1 und # 2 oben (git rebase upstream/master) oder Sie können es als Teil Ihres Pull tun (git pull --rebase upstream master)

Als erstes versuchen, aus dem gleichen Refspec zu ziehen, die Sie zu drücken versuchen.

Wenn das nicht funktioniert, können Sie einen git push unter Verwendung git push -f <repo> <refspec> zwingen können, aber Vorsicht walten lassen. Diese Methode kann Verweise führen auf der Remote-Repository gelöscht werden

Erster Einsatz

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

und dann versuchen,

git push -u origin master

Ist Ihr Repository auf "upstream" einem bloßen Repository? Ich habe den gleichen Fehler, aber wenn ich sie gerade nicht mehr auf blanke ändern.

Wenn Push-Anforderung zeigt abgelehnt, dann versucht erste Pull aus Ihrem Github-Konto und dann schieben versuchen.

Beispiel:

In meinem Fall war es einen Fehler geben -

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

**** Also, was ich tat, war - ****

$ git pull
$ git push

Und wurde der Code erfolgreich in mein Github Konto geschoben wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top