Skip to content
selste edited this page Nov 21, 2010 · 1 revision

Forks

Endlich …

Vorbereitung(en)

Ok, eigentlich wollen wir ja zusammen an dem Projekt arbeiten und gemeinsam Code schreiben … da sind getrennte Repositories nicht die erste Wahl.
Da wir keines der kostenpflichtigen Pakete von github nutzen müssen wir deshalb eine Technik nutzen, die als Fork bezeichnet wird.
Ein Repository – das ist jetzt halt zufällig meines – wird als Basis deklariert, und der Rest leitet davon sein Repository ab.

Wie funktioniert das?

  • Zunächst einfach mal das test-Repository aus dem ersten Teil wieder löschen … wird nicht mehr gebraucht!
  • Das Icon ‘Fork’ auf meinem Repository anklicken … und schon ist der größte Teil erledigt :-)

Do it

Als nächstes eine lokale Kopie des Repositories über ‘git clone’ anlegen, dabei ist wichtig, daß ihr keinen Klon meines Repositories holt, sondern eures (also die private URL nutzt, nicht die public)!
Jetzt wird ein wenig getrickst – das erleichtert später die Arbeit ungemein, wenn die Inhalte von meinem und eurem Repository abgeglichen werden müssen:
Mit cd opendrive in die soeben erzeugte lokale Kopie eures Repositories wechseln und dann folgende Befehle absetzen:
git remote add upstream git://github.com/selste/openDrive.git
git fetch upstream
Ok, und was haben wir davon? Na ja, vereinfacht gesagt existiert ab jetzt ein Branch namens upstream in eurem Repository, der read-only ist (weil er auf mein Repository verweist, auf dem außer mir niemand Schreibrechte hat) … und über
git fetch upstream
git merge upstream/master
werden alle Änderungen daraus übernommen!

Gut, das ist die eine Richtung – an meinen Repository ist eine Änderung vorgenommen worden, und die wollt ihr holen. Einbahnstrasse wäre aber schlecht, also muß das auch irgendwie in die andere Richtung funktionieren, oder?!
Jupp, tut es natürlich!
Euer Repository auf github aktualisiert ihr auf die althergebrachte Art und Weise: git push – daran hat sich nix geändert; so haltet ihr die lokale Kopie und das ‘Original’ synchron.
Damit ich darüber informiert werde, daß Änderungen anstehen, die in mein Repository übernommen werden sollen, müßt ihr einfach nur das Icon ‘Pull Request’ klicken, nachdem ihr euer Repository aktualisiert habt.
github zeigt euch dann an, welche Änderungen in diesem Request enthalten sind; wer über die Änderungen informiert wird u.v.a. mehr. Zu guter Letzt den Button ‘Update Commit Range’ klicken … und das wars!
Über das Dashboard können diese Requests übrigens angezeigt werden.

Clone this wiki locally