Informationen zu Forks
Mit Forks kannst du Änderungen an einem Projekt vornehmen, ohne dass sich dies auf das ursprüngliche Repository (Upstreamrepository) auswirkt. Nachdem du ein Repository geforkt hast, kannst du Updates aus dem Upstreamrepository abrufen, um deinen Fork auf dem neuesten Stand zu halten. Mithilfe von Pull Requests kannst du über deinen Fork auch Änderungen am Upstreamrepository vorschlagen. Eine Fork kann entweder einem personalisierten Konto oder einer Organisation gehören.
Wenn du ein geforktes Repository auf GitHub anzeigst, wird das Upstreamrepository unter dem Namen des Forks angegeben.
In Open-Source-Projekten werden Forks oft verwendet, um mehrfach Ideen oder Änderungen durchzuspielen, bevor sie in das Upstreamrepository aufgenommen werden. Wenn du ein öffentliches Repository in deinem persönlichen Konto forkst und dann einen Pull Request öffnest, um deine Änderungen am Upstreamrepository vorzuschlagen, kannst du jeder Person mit Pushzugriff auf das Upstreamrepository die Erlaubnis geben, Änderungen an deinen Pull Request-Branch zu pushen (einschließlich Löschung des Branches). Dies beschleunigt die Zusammenarbeit, da Repositoryverwalter*innen die Möglichkeit haben, Commits zu erstellen oder Tests vor dem Zusammenführen lokal für den Pull Request-Branch von einem benutzereigenen Fork aus auszuführen. Du kannst keine Push-Berechtigungen an eine Fork geben, die einer Organisation gehört. Weitere Informationen findest du unter Änderungen an einem Pull-Request-Branch zulassen, der von einem Fork erstellt wurde.
Das Löschen eines Forks wird das ursprüngliche vorgelagerte Repository nicht löschen. Code, der an eine Fork verschoben wird, wird von Upstream aus angezeigt, Änderungen wirken sich jedoch nicht sofort auf die Upstreambranches aus. Du kannst beispielsweise Projektmitarbeiter*innen hinzufügen, Dateien umbenennen oder GitHub Pages im Fork generieren, ohne dass sich dies auf die Upstreambranches auswirkt. Nachdem ein Fork gelöscht wurde, kannst du ihn nicht wiederherstellen. Weitere Informationen findest du unter Wiederherstellen eines gelöschten Repositorys. Wenn du ein privates Repository löschst, werden alle Forks des Repositorys gelöscht.
Du kannst die Forks eines Repositorys auf der Forkseite des Repositorys anzeigen, sortieren und filtern. Weitere Informationen findest du unter Zusammenhänge zwischen Repositorys verstehen.
Informationen zum Erstellen von Forks
Du kannst jedes öffentliche Repository zu deinem persönlichen Konto oder einer Organisation forken, in der du über die Berechtigung zum Erstellen von Repositorys verfügst. Wenn du Zugriff auf ein privates Repository hast und der Besitzer das Forken erlaubt, kannst du das Repository zu deinem persönlichen Konto oder einer beliebigen Organisation auf GitHub Team forken, sofern du die Berechtigungen zur Erstellung von Repositorys hast. Du kannst ein privates Repository nicht mit GitHub Free zu einer Organisation forken. Weitere Informationen zu GitHub Team und GitHub Free findest du unter GitHub-Pläne.
Anweisungen zum Forken eines Repositorys findest du unter Ein Repository forken. Weitere Informationen zur Erstellbarkeit von Forks sowie zu den Berechtigungs- und Sichtbarkeitseinstellungen für Forks findest du unter Informationen zu Berechtigungen und Sichtbarkeit von Forks.
Tipp: Du kannst GitHub Desktop verwenden, um ein Repository zu forken. Weitere Informationen findest du unter Repositories von GitHub Desktop klonen und per „Fork“ kopieren.
Forken eines Repositorys im Vergleich zum Duplizieren eines Repositorys
Wenn du ein neues Repository aus dem Inhalt eines vorhandenen Repositorys erstellen möchtest, deine Änderungen aber künftig nicht in das Upstream-Repository mergen möchtest, kannst du das Repository duplizieren oder – falls es sich bei dem Repository um eine Vorlage handelt – das Repository als Vorlage verwenden. Weitere Informationen findest du unter Ein Repository duplizieren und Ein Repository anhand einer Vorlage erstellen.
Das Forken eines Repositorys ähnelt dem Duplizieren eines Repositorys. Es bestehen jedoch die folgenden Unterschiede:
- Code, der an einen Fork gesendet wird, ist für alle Repositorys im Fork-Netzwerk sichtbar, auch nachdem dieser Fork gelöscht wurde.
- Du kannst einen Pull Request verwenden, um Änderungen am Upstreamrepository über deinen Fork vorzuschlagen.
- Du kannst Änderungen vom Upstreamrepository in deinen Fork übertragen, indem du deinen Fork mit dem Upstreamrepository synchronisierst.
- Forks verfügen über eigene Member, Branches, Tags, Bezeichnungen, Richtlinien, Issues, Pull Requests, Diskussionen, Aktionen, Projekte und Wikis.
- Forks erben die Einschränkungen ihrer Upstreamrepositorys. Beispielsweise können Branchschutzregeln nicht übernommen werden, wenn das Upstreamrepository zu einer Organisation mit einem GitHub Free-Plan gehört.