Ein Fork ist eine eigene Kopie eines fremden Repositorys auf dem Server, unter deinem Namen. Du kannst darin alles ändern, ohne Rechte am ursprünglichen Projekt zu haben. Englisch fork heißt Gabelung.
- Fork
Eine eigene Kopie eines fremden Repositorys auf dem Server.
Beispiel: „Für den Beitrag entstand erst ein Fork, dann ein Branch darin und am Ende ein Pull Request.“Abgrenzung zum Clone: Der Clone ist eine Kopie auf deinem Rechner, der Fork eine Kopie auf dem Server. Wer beitragen will, macht erst den Fork und klont dann diesen.
Der Begriff hat eine zweite Bedeutung: Ein Projekt, das sich dauerhaft von seinem Ursprung abspaltet und eigene Wege geht, heißt ebenfalls Fork.
Wozu ein Fork gebraucht wird
Für Beiträge zu Projekten, an denen man keine Schreibrechte hat, also für fast alles im quelloffenen Bereich. Du änderst in deiner Kopie und bittest danach per Pull Request darum, die Änderung zu übernehmen.
Innerhalb eines Teams braucht es das selten. Dort haben alle Schreibrechte, und ein Branch im gemeinsamen Repository reicht.
Wie ein Fork mit dem Ursprung verbunden bleibt
Über ein zweites Remote. Üblich ist, dass origin auf den eigenen Fork zeigt und upstream auf das ursprüngliche Projekt. Geholt wird von upstream, gepusht nach origin.
Ohne diese Verbindung veraltet ein Fork schnell. Nach ein paar Wochen baut jede Änderung darin auf einem Stand auf, den es im Ursprung längst nicht mehr gibt.
Wann aus einem Fork ein eigenes Projekt wird
Wenn die Wege dauerhaft auseinandergehen, meist nach einem Streit über die Richtung oder nach dem Einschlafen des Ursprungs. Bekannte Beispiele sind LibreOffice aus OpenOffice und MariaDB aus MySQL.
Das ist die ältere Bedeutung des Wortes und hat mit der Schaltfläche auf GitHub nur den Namen gemeinsam.