Skip to main content

Gabeln

Verstehen Sie, wie Forks die unabhängige Zusammenarbeit ermöglichen, indem Sie separate Repositorys erstellen, die mit dem Original verbunden sind, mit unterschiedlichen Einstellungen und Berechtigungen.

Forks sind Repositorys, die als Kopien eines anderen Repositorys beginnen, das als upstream-Repository bezeichnet wird. Ein Fork hat eigene Einstellungen und Berechtigungen, bleibt jedoch mit dem Upstream-Repository verbunden.

Wenn Sie auf GitHub ein geforktes Repository anzeigen, wird das Upstream-Repository unter dem Namen des Forks angegeben.

So unterscheiden sich Forks von Branches

Ein Branch ist Teil eines Repository. Ein Fork ist ein separates Repository mit eigenen Einstellungen und einem Bereich zur Zusammenarbeit.

Jede Verzweigung kann ihre eigenen haben:

  • Filialen
  • Mitglieder und Diskussionen
  • Probleme und Pull Requests
  • Aktionen und Projekten
  • Kategorien, Bezeichnungen und Wikis

Welche Repositorys können geforkt werden?

Sie können ein privates oder internes Repository zu Ihrem persönlichen Konto oder einer Organisation auf GitHub forken, wo Sie über Berechtigungen zur Repositoryerstellung verfügen, wenn die Einstellungen für das Repository und Ihre Unternehmensrichtlinien das Forken zulassen.

Im Allgemeinen kannst du jedes öffentliche Repository in dein persönliches Konto oder in eine Organisation forken, in der du die Berechtigung hast, Repositorys zu erstellen.

Repository-, Organisations- und Unternehmensrichtlinien können einschränken, ob Repositories geforkt werden können und wo Forks erstellt werden können. Für private und interne Repositorys hängt auch der Zugriff auf Forks von Repositorysichtbarkeit, Organisationsmitgliedschaft und Administratoreinstellungen ab.

Siehe Die Forking-Richtlinie für deine Organisation verwalten und Richtlinien zur Verwaltung von Repositories in Ihrem Unternehmen erzwingen.

Sichtbarkeit von Forks

Die Sichtbarkeit eines Forks ist an das Repository-Netzwerk des Upstream-Repositorys gebunden. Öffentliche Repository-Forks sind öffentlich, und private Repository-Forks sind privat. Forks von internen Repositories sind privat. Sie können die Sichtbarkeit einer Verzweigung nicht selbst ändern.

Alle Repositorys in einem Repositorynetzwerk verwenden dieselbe Sichtbarkeitseinstellung. Ein Repository-Netzwerk umfasst das Upstream-Repository, seine Forks und die Forks dieser Forks. Siehe Zusammenhänge zwischen Repositorys verstehen.

Das Löschen eines Repositorys oder das Ändern seiner Sichtbarkeit kann sich auf das Netzwerk auswirken. Wenn Sie eine Verzweigung löschen, können Codebeiträge aus dieser Verzweigung weiterhin für das Repositorynetzwerk zugänglich bleiben.

Was geschieht mit Forks, wenn ein Repository gelöscht oder die Sichtbarkeit geändert wird

Warnung

  • Wenn du den Zugriff einer Person auf ein privates Repository entfernst, werden all ihre Forks in diesem privaten Repositorys gelöscht. Lokale Klone des privaten Repositorys werden beibehalten. Wenn der Zugriff eines Teams auf ein privates Repository widerrufen wird oder ein Team mit Zugriff auf ein privates Repository gelöscht wird und Teammitglieder keinen Zugriff auf das Repository über ein anderes Team haben, werden private Forks des Repositorys gelöscht.
  • Wenn die LDAP-Synchronisierung aktiviert ist, verliert eine Person, die du aus einem Repository entfernst, ihren Zugriff, aber ihre Forks werden nicht gelöscht. Wenn die Person innerhalb von drei Monaten zu einem Team mit Zugriff auf das ursprüngliche Organisations-Repository hinzugefügt wird, wird ihr Zugriff auf die Forks bei der nächsten Synchronisierung automatisch wiederhergestellt.
  • Du bist dafür verantwortlich, dass die Personen, denen du den Zugriff auf ein Repository entziehst, vertrauliche Informationen oder geistiges Eigentum von ihren Systemen löschen.
  • Personen mit Administratorberechtigungen für ein privates oder internes Repository können das Forken dieses Repositorys verhindern, und Organisationsbesitzer können das Forken eines privaten oder internen Repositorys in einer Organisation verhindern. Weitere Informationen findest du unter Die Forking-Richtlinie für deine Organisation verwalten und Verwalten der Forking-Richtlinie für dein Repository.

Sichtbarkeitsänderungen können Forks in neue Repository-Netzwerke aufteilen, sodass bestehende Fork-Besitzer weiterarbeiten können, ohne unerwartet den Zugriff zu verlieren.

ActionWirkung auf Forks
Ein privates Repository wird gelöscht.Die privaten Forks werden ebenfalls gelöscht.
Ein öffentliches Repository wird gelöscht.Ein aktiver öffentlicher Fork wird zum neuen Upstream-Repository des Netzwerks.
Ein öffentliches Repository wird privat gemachtSeine öffentlichen Forks bleiben in einem separaten Netzwerk öffentlich.
Ein privates Repository wird öffentlich gemachtPrivate Forks bleiben privat, trennen sich aber in separaten privaten Netzwerken.
Ein internes Repository ändert die SichtbarkeitForks im Besitz von Organisationen oder persönlichen Konten bleiben privat.

Das Ändern eines öffentlichen Repositorys in ein privates kann sich auch auf Stars, Beobachter, den Abhängigkeitsgraphen sowie auf die Verfügbarkeit von Dependabot alerts und code scanning auswirken. Überprüfen Sie die Sichtbarkeitseinstellungen des Repositorys sorgfältig, bevor Sie sie ändern.

Wenn ein öffentliches Repository anonymen Git-Lesezugriff aktiviert hat und das Repository privat gemacht wird, verlieren alle Forks des Repositorys anonymen Git-Lesezugriff und kehren zur Standardeinstellung deaktiviert zurück. Wenn ein geforktes Repository als öffentlich festgelegt wird, kann der anonyme Git-Lesezugriff durch die Repository-Administratoren wieder aktiviert werden. Siehe Anonymen Git-Lesezugriff für ein Repository aktivieren.

Berechtigungen für Forks

Private Forks erben die Berechtigungsstruktur des Upstreamrepositorys. Dies hilft den Inhabern privater Repositorys, die Kontrolle über ihren Code zu behalten. 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. Nur Teamberechtigungen (nicht einzelne Berechtigungen) werden von privaten Forks geerbt.

Hinweis

Wenn Sie Basisberechtigungen für eine Organisation ändern, werden Berechtigungen für private Forks nicht automatisch aktualisiert. Weitere Informationen findest du unter Festlegen von Basisberechtigungen für eine Organisation.

Öffentliche Forks erben die Berechtigungsstruktur des Upstreamrepositorys nicht. Besitzer von Forks steuern den Zugriff auf ihre Forks, aber Repository-Netzwerke teilen weiterhin Git-Daten. Commits, die an ein beliebiges Repository in einem Netzwerk übertragen werden, können von anderen Repositorys in diesem Netzwerk aus zugänglich sein, einschließlich des upstream-Repositorys.

Wenn Sie ein öffentliches Repository auf Ihr persönliches Konto forken, können Sie den Maintainern des Upstream-Repositorys erlauben, Änderungen in Ihren Pull-Request-Branch zu pushen. Dies kann Maintainern helfen, Ihren Branch zu aktualisieren, Tests auszuführen oder kleine Probleme zu beheben, bevor er zusammengeführt wird. Sie können keine Push-Berechtigungen für einen Fork erteilen, der einer Organisation gehört. Siehe Allowing changes to a pull request branch created from a fork.

Push-Regelsätze für geforkte Repositorys

Pushregeln gelten für das gesamte Forknetzwerk für ein Repository, um sicherzustellen, dass jeder Einstiegspunkt im Repository geschützt ist. Wenn Sie beispielsweise ein Repository verzweigen, das Push-Regelsätze aktiviert hat, gelten dieselben Push-Regelsätze auch für Ihr Fork-Repository.

Bei einem Fork-Repository sind die einzigen Personen, die über Umgehungsberechtigungen für eine Pushregel verfügen, die Personen, die über Umgehungsberechtigungen im Stamm-Repository verfügen.

Siehe Informationen zu Regelsätzen.

Wichtige Sicherheitsüberlegungen

Forks sind leistungsstarke Tools für die Zusammenarbeit, aber sie können Code und Historie auf leicht zu übersehende Weise offenlegen.

  • Forks verfügen unabhängig vom Upstreamrepository über eigene Berechtigungen.
  • Besitzer eines Upstream-Repositorys können alle Forks im Repositorynetzwerk lesen.
  • Organisationsbesitzer haben möglicherweise Administratorzugriff auf Forks, die in persönlichen Namespaces erstellt wurden.
  • Durch das Entfernen des Zugriffs einer Person auf das upstream-Repository werden keine Forks in anderen Organisationen gelöscht.
  • Commits können im Netzwerk des Repositorys auch nach dem Löschen eines Forks zugänglich bleiben.

Bevor Sie Forks für vertrauliche Arbeiten zulassen, überprüfen Sie das Berechtigungs- und Sichtbarkeitsmodell für Ihr Repository oder Ihre Organisation.

Forks innerhalb einer Organisation

Forks innerhalb derselben Organisation kopieren Mitarbeiter- und Teameinstellungen aus dem upstream-Repository. Die Organisation steuert Berechtigungen für diese Forks, und vorhandene sichtbare Teams behalten möglicherweise den Zugriff.

Abspaltungen in einem Unternehmen

Interne Repositories unterstützen nur eine Forking-Ebene. Sie können keinen privaten Fork eines internen Repositorys erstellen. Dadurch bleibt der Zugriff und die Verwaltung für Repositorys einfacher, die in einem Unternehmen sichtbar sind.