2016-05-24 5 views
-1

Wenn ich versuche, Quellcode zu ziehen, entwickeln sich ... das Problem ist, ich weiß, dass es nicht auf dem neuesten Stand ist. Ich möchte alles zurückholen, um mit anderen Commits auf dem neuesten Stand zu sein.Mein lokales Repository sagt ständig * Zweig entwickeln -> FETCH_HEAD Bereits aktuell

Wenn ich nichts anderes an Bedeutung in meinem lokalen Repository habe, kann ich mich einfach vom Ursprung zurückziehen? Ich denke, es wird alles überschreiben, aber zumindest als ich up-to-date sein und die sichere Version haben alle anderen!?!?!?

Dies war mit git meiner ursprünglichen Workflow, aber irgendwie habe alles schief:

git add files_that_were_updated 
git commit -m "Message." 
git push origin BUG-# 
git checkout develop 
git fetch origin 
git pull origin develop 
git merge BUG-# 
git push origin develop 

Scheint ziemlich Standard und einfach, nicht wahr?

+0

Nicht wirklich. Was ist der Sinn dafür, 'BUG- #' zu drücken, nur um es sofort zu integrieren? Und wenn Sie '' schon '' '' '' '' '' '' '' '' ziehen, ist ein einfaches 'merge' ausreichend, da' pull' 'fetch' +' merge' oder 'fetch' +' rebase' sind, je nachdem Ihre Konfiguration und Optionen. Und übrigens. Wenn du 'origin/develop' als Tracking-Zweig für dein lokales 'develop' einrichtest (wahrscheinlich ist es schon so), musst du nicht sagen, wohin du drücken oder wohin du ziehen sollst. – Vampire

+0

Was ist die fehlgeschlagene Ausgabe? Einverstanden, das klingt, als würde es funktionieren. Du hast ein paar zu viele Befehle drin, aber nichts, was Schaden anrichtet. – robrich

Antwort

0

Es ist nicht möglich zu sehen, welcher Zweig Sie waren, als Sie das erste Commit ausgeführt haben. Daher ist es möglich, dass Sie das Commit direkt in den Zweig gemacht haben, da Sie sich im BUG-Zweig befanden. Das würde erklären, warum Sie die Nachricht "Already up-to-date" erhalten, da Ihr lokaler develop jetzt dem develop auf dem Remote-Repository voraus ist.


Eine einfache Möglichkeit, die neueste Filiale von der Remote-Repository (z Herkunft), um sicherzustellen, zu erhalten, bis auf das Repository ist ein git fetch branchName:branchName --force zu tun, während Sie in einem anderen Zweig als branchName sind.

In Ihrem Beispiel so etwas wie diese:

# assuming you are on branch `BUG-#` 
git add files_that_were_updated 
git commit -m "Message." 
git push origin BUG-# 
git fetch origin develop:develop --force 
... 

Der letzte Befehl über Ihren lokalen develop Zweig mit dem develop Zweig ersetzen, die auf dem Server ist, wo Ihre origin Fernbedienung zeigt.

Beachten Sie, dass Sie sich nicht in derselben Verzweigung befinden können, die ersetzt wird. Daher sollten Sie immer zuerst zu einer anderen Verzweigung wechseln.

Verwandte Themen