Seit einiger Zeit beschäftige ich mich mit git, einem verteilten Versionskontrollsystem und bin auf Github aktiv. Ein Problem was sich immer wieder findet, ist dass man ein Repository geforked hat und sich derweil das originale Repository weiterentwickelt. Nun möchte man den einen Fork aktualisieren… und schon steht man vor dem Berg. Ich zeige hier an dem Projekt sequelize-doc , der Dokumentation des ORM sequelize , wie das funktioniert. In meinem Falle habe ich drei Repositories:

Wenn man forkt, arbeitet man lokal immer mit dem eigenen Fork von Github (Origin), daher ist man lokal auch nur mit diesem Verbunden.Nun muss man lokal ein neues remote-Repository namens “upstream” hinzufügen, damit das originale eingebunden wird:

1
git remote add upstream git://github.com/sdepold/sequelize-doc.git

Dann pullt man die Änderungen ins lokale Verzeichnis (hier in den Master-branch):

1
git pull upstream master

Jetzt ist der lokale Master-Branch “in sync” mit dem Upstream. Das Ergebnis pusht man nun wieder in Origin:

1
git push origin master

In Zukunft muss man natürlich nur noch die beiden letzten Schritte machen, die Verknüpfung mit Upstream bleibt im lokalen Repository gespeichert.