Aber ich bekomme ein Fehler "! [abgelehnt]" und etwas über "nicht schnell vorwärts"
Das liegt daran, dass Git die Änderungen aus den Zweigen nicht in Ihren aktuellen Master zusammenführen kann. Nehmen wir an, Sie haben den Zweig master
ausgecheckt und möchten in den Remote-Zweig other-branch
einbinden. Wenn Sie dies tun:
$ git pull origin other-branch
Git ist dies im Grunde tun:
$ git fetch origin other-branch && git merge other-branch
Das heißt, ein pull
ist nur eine von einem merge
gefolgt fetch
. Wenn jedoch pull
-ing, wird Git nur merge other-branch
wenn es kann eine Schnellvorlauf Merge durchführen.Ein Schnellvorlauf Merge ist eine Zusammenführung, in der der Kopf des Zweigs, in den Sie versuchen zu verschmelzen, ein direkter Abkömmling des Kopfes der Branche ist, die Sie zusammenführen möchten. Zum Beispiel, wenn Sie diese Geschichte Baum, dann other-branch
Fusion würde in einem vorspulen merge führen:
O-O-O-O-O-O
^ ^
master other-branch
Dies würde jedoch nicht sein ein Vorspulen merge:
v master
O-O-O
\
\-O-O-O-O
^other-branch
Um Ihr Problem zu lösen, zuerst holt den Remote-Zweig:
$ git fetch origin other-branch
ich dann rge es in Ihrem aktuellen Zweig (I nehme an, das ist master
) und beheben Sie Konflikte zusammenführen:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!
Repo hinzufügen, was ist der eigentliche Befehl, den Sie laufen werden? –
Es ist Fetch, der mit 'Non Fast Forward' Nachricht fehlschlagen kann. Haben Sie den Remote-Tracking-Zweig (Ursprung/xyz) geändert oder wurde der Zweig im Remote-Repository zurückgespult/neu geschrieben? Sie müssen "git fetch ursprung - force" verwenden, aber lesen Sie die Dokumentation, bevor Sie das tun. –