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:
- Lokal
- Origin: Mein Fork auf Github
- Upstream: Das originale Repository
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:
|
|
Dann pullt man die Änderungen ins lokale Verzeichnis (hier in den Master-branch):
|
|
Jetzt ist der lokale Master-Branch “in sync” mit dem Upstream. Das Ergebnis pusht man nun wieder in Origin:
|
|
In Zukunft muss man natürlich nur noch die beiden letzten Schritte machen, die Verknüpfung mit Upstream bleibt im lokalen Repository gespeichert.