Ein Fork ist eine Kopie eines Repositorys, die Ihnen gehört und mit dem ursprünglichen Repository verbunden ist, das als Upstream-Repository bezeichnet wird. Mit einer Verzweigung können Sie Änderungen an Ihrem eigenen Bereich vornehmen, ohne dass sich dies auf das upstream-Projekt auswirkt, und diese Änderungen mit einer Pullanforderung erneut vorschlagen.
Warum einen Fork verwenden
Ein Fork bietet Ihnen einen unabhängigen Arbeitsbereich, während Sie weiterhin mit dem Originalprojekt verbunden bleiben. Forks sind nützlich, wenn Sie folgendes möchten:
- Tragen Sie zu einem Projekt bei, bei dem Sie keinen Schreibzugriff haben.
- Experimentieren Sie mit Änderungen, ohne dass sich dies auf das upstream-Repository auswirkt.
- Erkunden Sie eine neue Richtung, die später unabhängig werden kann.
- Halten Sie Ihre eigenen Branches, Issues und Pull Requests getrennt vom Upstream-Projekt.
Forks und Branches
Forks und Branches bieten Ihnen beide eine Möglichkeit, an Änderungen zu arbeiten, funktionieren jedoch unterschiedlich:
- Eine Verzweigung befindet sich innerhalb eines einzelnen Repositorys. Verwenden Sie einen Branch, wenn Sie Schreibzugriff haben und in einem gemeinsamen Repository zusammenarbeiten.
- Ein Fork ist ein separates Repository mit eigenen Einstellungen, Berechtigungen und einem eigenen Bereich für die Zusammenarbeit. Verwenden Sie einen Fork, wenn Sie Unabhängigkeit vom Upstream-Repository benötigen oder wenn Sie keinen Schreibzugriff haben.
Da ein Fork ein eigenes Repository ist, bietet er Ihnen mehr Unabhängigkeit als ein Branch. Da sie mit dem upstream-Repository verbunden bleibt, können Ihre Änderungen weiterhin über Pullanforderungen zurückfließen.
Wie Forks mit dem Upstream-Repository verbunden werden
Ein Fork teilt seine Historie mit dem Upstream-Repository, sodass zwischen beiden Änderungen über Pull Requests ausgetauscht werden können. Ein Fork hat auch eine eigene Sichtbarkeit und eigene Berechtigungen, die an das Upstream-Repository und das Repository-Netzwerk gekoppelt sind, zu dem er gehört.
Für die meisten Mitwirkenden bleibt dieser Zusammenhang im Hintergrund: Sie forken ein Repository, arbeiten in Ihrem Fork und öffnen einen Pull Request, wenn Sie bereit sind, Ihre Änderungen vorzuschlagen.