Fork eines Github-Repositorys aktualisieren

Es ist nicht ungewöhnlich, dass sich im eigenen Github-Repository einige Forks anhäufen. Wenn man sich nach einiger Zeit so einem Fork widmet, wird man es zunächst aktualisieren wollen, schließlich mag es sein, dass der Autor des Originals mittlerweile Veränderungen vorgenommen hat. Dieser Blogbeitrag beschreibt, wie dies in der Shell durchgeführt werden kann.

  1. Öffne das Terminal (oder beispielsweise iTerm) und wechsel in das lokale Repository.
  2. Stelle sicher, dass der richtige Zweig aktiviert ist. In der Regel wird dies master — oder bei neueren Repositories main — sein.
$ git checkout main
  1. Bevor die Aktualisierung durchgeführt werden kann, ist zu prüfen, ob das Original-Repository bzw. der Original-Upstream bekannt ist. Mit folgender Anweisung kann dies überprüft werden:
$ git remote -v
origin    https://github.com/xern/imessage_reader.git (fetch)
origin    https://github.com/xern/imessage_reader.git (push)
  1. In diesem Fall wird lediglich das geforkte Repository ausgegeben. Daher ist es erforderlich, das Original-Repository hinzuzufügen, was mit nachfolgend gezeigter Anweisung erreicht wird. Dabei ist die Original-Adresse innerhalb von <> entsprechend anzupassen.
$ git remote add upstream <https://github.com/original_owner/original_repository.git>
  1. Wenn nun git remote -v ausgeführt wird, führt dies hier zu folgender Ausgabe:
origin    https://github.com/xern/imessage_reader.git (fetch)
origin    https://github.com/xern/imessage_reader.git (push)
upstream    https://github.com/niftycode/imessage_reader.git (fetch)
upstream    https://github.com/niftycode/imessage_reader.git (push)
  1. Jetzt ist es an der Zeit, die Änderungen (im Original-Repository) abzufragen:
$ git fetch upstream
  1. Die Änderungen können dann in das geforkte Repository übernommen werden:
$ git merge upstream/main
  1. Schließlich werden die Änderungen mit push in den eigenen Remote-Fork hochgeladen:
$ git push

Nachdem diese Schritte durchgeführt wurden, sind das Original-Repository und der Fork wieder synchron.