Das Forking eines Repositorys ist ähnlich wie das Kopieren eines Repositorys, mit zwei wesentlichen Unterschieden:
- Du kannst einen Pull Request verwenden, um Änderungen von Deiner benutzereigenen Fork zum ursprünglichen Repository, auch als upstream (vorgelagertes) Repository bekannt, vorzuschlagen.
- Du kannst Änderungen vom vorgelagerten Repository auf Deinen lokalen Fork übertragen, indem Du Deinen Fork mit dem vorgelagerten Repository synchronisierst.
Du kannst jedes öffentliche Repository zu Deinem Benutzerkonto oder zu jeder Organisation forken, in der Du die Berechtigung zum Erstellen von Repositorys hast. Weitere Informationen findest Du unter „Berechtigungsebenen für eine Organisation".
Du kannst jedes private Repository, auf das Du Zugriff hast, zu Deinem Benutzerkonto oder zu jeder Organisation auf GitHub Team oder GitHub Enterprise forken, in denen Du die Berechtigung zum Erstellen von Repositorys hast. Du kannst ein privates Repository nicht an eine Organisation forken, die GitHub Free verwendet.
Du kannst GitHub Desktop verwenden, um ein Repository zu forken. Weitere Informationen findest Du unter „Klonen und Forking von Repositorys von GitHub Desktop."
Das Löschen eines Forks wird das ursprüngliche vorgelagerte Repository nicht löschen. Du kannst beliebige Änderungen an Deiner Fork vornehmen – Mitarbeiter hinzufügen, Dateien umbenennen, GitHub Pages generieren –, ohne Auswirkungen auf das Original.
In Open-Source-Projekten werden Forks oft verwendet, um mehrfach Ideen oder Änderungen durchzuspielen, bevor sie an das vorgelagerte Repository zurückgesendet werden. Wenn Du Änderungen in Deiner benutzereigenen Fork vornimmst und einen Pull Request öffnest, die Deine Arbeit mit dem vorgelagerten Repository vergleicht, kannst Du jedem mit Push-Zugriff auf das vorgelagerte Repository die Erlaubnis geben, Änderungen in deinen Pull-Request-Branch zu übertragen. Dies beschleunigt die Zusammenarbeit, indem es den Repository-Betreuern erlaubt, Commits zu erstellen oder Tests vor dem Zusammenführen lokal aus einer benutzereigenen Fork zu Deinem Pull-Request-Branch auszuführen. Du kannst keine Push-Berechtigungen an eine Fork geben, die einer Organisation gehört.
Private Forks übernehmen die Berechtigungsstruktur des vorgelagerten oder übergeordneten Repository. Wenn das vorgelagerte Repository beispielsweise privat ist und einem Team Lese-/Schreibzugriff gibt, wird dasselbe Team Lese-/Schreibzugriff auf alle Forks des privaten vorgelagerten Repository haben. Dies hilft den Inhabern privater Repositorys, die Kontrolle über ihren Code zu behalten.
Wenn Du ein neues Repository aus dem Inhalt eines bestehenden Repositorys erstellen möchtest, Deine Änderungen aber in Zukunft nicht mit dem vorgelagerten Repository zusammenführen möchtest, kannst Du das Repository duplizieren oder, wenn das Repository eine Vorlage ist, das Repository als Vorlage verwenden. Weitere Informationen findest Du unter „Ein Repository duplizieren“ und „Ein Repository anhand einer Vorlage erstellen“.