Git - Update eines geforkten Repos

Holaquetal!

Newbie
Registriert
Jan. 2014
Beiträge
2
Hi,

ich verwende aktuell Git in einem Projekt und möchte ein geforktes Git repo aktualisieren, da in dem ursprünglichen repo Änderungen durchgeführt wurden. Ich muss keinerlei Änderungen von mir mergen, ich möchte nur das geforkte Repo aktualisieren. Dafür verwende ich das ansonst sehr empfehlenswerte Tool Sourcetree (auch für Bitbucket..). Das Problem ist, daß mein repo mehrere Branches enthält und ich weiss nicht, wie ich am einfachsten alle Branches aktualisiere. Über das Pull-Menü von Sourcetree kann ich anscheinend nur einzelne Branches anpassen, das heißt von dem ursprünglichen Repo in mein lokales Repo pullen, um dann anschließend mit einem Push das geforkte Repo auf dem Git-Server zu aktualisieren.

Ich bin mir auch nicht sicher, ob ich über Sourcetree beim "Pull from remote" überhaupt einen Branch des ursprünglichen Repos auswählen kann. So wie es aussieht, wählt das Tool automatisch den default-branch, also den master branch.

Als Anleitung hab ich mich an diesen Link gehalten:

http://stackoverflow.com/questions/13273852/how-do-i-update-my-forked-repo-using-sourcetree

Der funzt aber nur, wenn es sich um einen einzigen Branch handelt.

Kann mir jemand einen Tipp geben, was ich tun kann?

Ciao
 
Meines Wissens kann Git immer nur einen Branch zur Zeit aktualisieren - nämlich den, den du gerade ausgecheckt hast. Es dürfte dir nichts anderes übrigbleiben als jeden Branch einzeln zu pullen.

Zu Sourcetree speziell kann ich dir nichts sagen. Konsole ftw :)
 
NullPointer schrieb:
Meines Wissens kann Git immer nur einen Branch zur Zeit aktualisieren - nämlich den, den du gerade ausgecheckt hast. Es dürfte dir nichts anderes übrigbleiben als jeden Branch einzeln zu pullen.

Zu Sourcetree speziell kann ich dir nichts sagen. Konsole ftw :)

Danke. Ich hab nur die Sorge, daß ich bei Sourcetree einen Pull von einem falschen Branch mache. Irgendwie wird hier immer defaultmäßig ein Branch des urspr. Repos ausgewählt und ändern kann ich hier nichts.
 
Ich kenne Sourcetree jetzt nicht, aber die Befehle sollte sich eigentlich immer auf den ausgewählte Branch beziehen.
Wenn du mehrere Branches aktuallisieren willst, dann musst du diese entsprechend nacheinander aktuallisieren.
 
Ich weiß zwar nicht, wozu das gut sein soll, aber schreib dir doch einfach ein kleines Script, was das macht. Einfach fetch -p um remote nicht mehr existierende branches wegzuwerfen, dann über den branch -r output iterieren und jeweils pullen. Wenn du unter Linux bist, kann ich dir mit bash weiterhelfen. Unter Windows bist du auf dich allein gestellt oder auf einen willigen Mitforisten angewiesen. PowerShell fass ich nicht an, sorry. :p

Kann aber sein, dass dir fetch wirklich ausreicht. Zumindest die tracking branches werden dann aktualisiert, d.h. du weißt, was remote so passiert ist, aber deine lokalen branches werden nicht aktualisiert. Ein Problem vom automatischen Pullen (d.h. fetch gefolgt von rebasen bzw. mergen) ist natürlich, dass sich auf den branches keine Änderungen befinden sollten, sonst ist die Wahrscheinlichkeit hoch, dass es an Konflikten scheitert, selbst wenn du temporär stashst.
 
Zurück
Oben