[git] Wie lokalen Branch auf lokalen Remote-Branch zeigen lassen?

T

Tersus

Gast
Guten Abend,
ich habe angefangen, git zu lernen. Die Doku ist sehr gut und das Prinzip habe ich binnen weniger Stunden kapiert. Ich arbeite derzeit offline, kann also nicht pullen. Das ist auch nicht weiter wild.

Mein lokaler Remote-Branch orgin/develop zeigt mir derzeit auf den letzten Commit. Mein von git angelegter Branch Master zeigt entsprechend auf orgin/master und verfolgt diesem.

Nun habe ich noch einen lokalen Branch develop angelegt und ihn den Remote-Branch orgin/develop verfolgen lassen. Nun zeigt mein lokaler Branch develop jedoch nach wie vor auf den Commit, auf den auch mein Branch master zeigt und hinkt dem lokalen orgin/develop gewaltig nach.

Mit welchem Befehl kann ich meinen lokalen Branch develop also auf den selben Commit zeigen lassen, auf den auch orgin/develop zeigt? Ich konnte das jetzt so nicht im git-tut finden oder habe es auch überlesen. :-/

Muss ich die mergen?

Grüße
 
Dieser Befehl dient nur dazu, den lokale Branch einem Remote-Branch folgen zu lassen. Das ist bei mir bereits der Fall. Mein lokaler Branch develop folgt bereits dem orgin/develop, jedoch zeigt er nicht auf den Commit, auf den orgin/develop zeigt, sondern auf den von master.

Grüße

EDIT: Ich habe es mit einem Fast-forward-Merge gelöst, ist vielleicht aber nicht die empfohlene Vorgehensweise. Beim nächsten mal gleich git checkout -b mybranch orgin/mybranch.
 
Zuletzt bearbeitet von einem Moderator:
Code:
• - • - • - • - • - •
  \                 |-> origin/master,master
   \
    • - • - • - • - •
    |-> develop     |-> origin/develop
So? Dann musst du im develop nen Pull machen, damit die Änderungen von origin/develop in develop einfließen. pull = fetch + merge.

Übrigens: Es gibt keinen lokalen origin/develop. origin ist ein Remote Repo, develop dessen Branch. Wenn du weitere Remotes hinzufügst, heißen die dann jeweils remote1/develop, remote2/develop usw. Lokal ist nur develop.
 
Code:
*---*
    ⇡\
    : *---*--...--*---*
    :                 ⇡
    :                 :
    :                 +orgin/develop
    :
    +master, develop
So war es gemeint.
Ich muss dich korrigieren. Es gibt lokale Remote-Branchen. Mein orgin/develop ist auch lokal. Lokal meint hier den Branch develop aus dem Repo orgin, welcher vom Server auf den Rechner gecloned wurde und somit lokal auf dem Rechner liegt. Der Branch ist somit entsprechen auf dem Stand des letztem fetchs. So steht es zumindest in der Doku und das ergibt auch einen Sinn. Die Zeiger lokaler Remote-Branches kann man nicht ändern. Sie ändern sich entsprechend mit jemand fetch, wenn sie mit dem identischen Branch auf dem Server synchronisiert werden.
Ist halt mehr die Frage, wie man "lokal" definiert. :)

Danke für deine Hilfe.
 
Tersus schrieb:
Ich muss dich korrigieren. Es gibt lokale Remote-Branchen. Mein orgin/develop ist auch lokal. Lokal meint hier den Branch develop aus dem Repo orgin, welcher vom Server auf den Rechner gecloned wurde und somit lokal auf dem Rechner liegt.
Ja natürlich. Trotzdem ist origin/develop nicht dein lokaler Zweig, sondern nur develop. origin/develop (bzw. remotes/origin/develop absolut) ist der Zweig des Remotes.
Tersus schrieb:
Ist halt mehr die Frage, wie man "lokal" definiert.
http://stackoverflow.com/questions/...ocal-branch-local-tracking-branch-remote-bran

lokal = deine Zweige, die du auch bearbeiten kannst
remote = alles unter remotes/* (git branch -a), darunter fällt auch origin/develop

Was ist wenn dein Remote 100 Zweige besitzt, du aber nur den master auscheckst? Dann gibts trotzdem 99 weitere Zweige, die du auf deiner Maschine hast, aber nirgendwo lokal vorgehalten sind. Weil eben kein lokaler Zweig von diesen vorhanden ist. Es ist ja nicht so, dass nur du allein mit git arbeitest (in deinem Fall jetzt vielleicht schon, weiß ich nicht), sondern evtl. noch zehn andere Personen. Diese pushen ihre Zweige ggf. auch auf die Remotes, weshalb du dann lokal ungetrackte, aber remote vorhandene Zweige besitzt und auch gelistet bekommst.



In deinem Fall einfach in den master zurückwechseln und nen Merge von develop durchführen. Ggf. einen Rebase, aber ein Merge wird für den Anfang wohl ausreichen. Nicht schön, erfüllt aber seinen Zweck.
 
Welches Tutorial hast du verwendet bzw kannst du Empfehlen?
"Git lernen" war auch eins meiner TODOs für die Weihnachtsferien :)
 
Zurück
Oben