Informationen zu Forks
Wenn du zu einem anderen Projekt beitragen möchtest, aber keinen Schreibzugriff auf das Repository hast, kannst du einen Fork- und Pull Request-Workflow verwenden.
Ein Fork ist ein neues Repository, das denselben Code und dieselben Sichtbarkeitseinstellungen verwendet wie das ursprüngliche „Upstream-Repository“. Forks werden oft verwendet, um Ideen oder Änderungen zu überprüfen, bevor sie für das Upstream-Repository vorgeschlagen werden, z. B. in Open-Source-Projekten oder wenn ein Benutzer keinen Schreibzugriff auf das Upstream-Repository hat.
Du kannst einen Beitrag leisten, indem du Pull Requests von deinem Fork an das Upstream-Repository übermittelst. Weitere Informationen findest du unter Ein Repository forken.
Repository forken
In diesem Tutorial wird das Spoon-Knife-Projekt verwendet. Es ist ein Testrepository auf GitHub, mit dem Sie den Fork- und Pull Request-Workflow testen können.
-
Navigiere zum
Spoon-Knife
-Projekt auf https://github.com/octocat/Spoon-Knife. -
Klicke in der oberen rechten Ecke der Seite auf Forken.
-
Wähle unter „Besitzer“ das Dropdownmenü und dann einen Besitzerin für das geforkte Repository aus.
Note
Wenn Ihr Benutzername ausgegraut ist, liegt das daran, dass der Fork bereits vorhanden ist. Stattdessen sollten Sie den vorhandenen Fork auf dem neuesten Stand bringen. Weitere Informationen findest du unter Einen Fork synchronisieren.
-
Standardmäßig erhalten Forks den gleichen Namen wie die zugehörigen Upstream-Repositorys. Um deinen Fork noch genauer zu unterscheiden, kannst du optional im Feld „Repositoryname“ einen Namen eingeben.
-
Gib optional im Feld „Beschreibung“ eine Beschreibung für deinen Fork ein.
-
Wähle optional Nur Standardbranch kopieren aus.
Bei vielen Forkszenarien, z. B. Beiträge zu Open-Source-Projekten, musst du nur den Standardbranch kopieren. Wenn du diese Option nicht auswählst, werden alle Branches in den neuen Fork kopiert.
-
Klicke auf Fork erstellen.
Hinweis: Wenn du weitere Branches aus dem Upstream-Repository kopieren möchtest, ist dies über die Seite Branches möglich. Weitere Informationen findest du unter Erstellen und Löschen von Branches in deinem Repository.
Klonen eines Forks
Du hast erfolgreich einen Fork des Spoon-Knife-Repositorys erstellt. Bisher ist es jedoch nur auf GitHub Enterprise Server vorhanden. Um an dem Projekt arbeiten zu können, musst du es auf deinen Computer klonen.
Du kannst dein Fork über die Befehlszeile, die GitHub CLI oder GitHub Desktop klonen.
-
Navigiere auf GitHub Enterprise Server im Spoon-Knife-Repository zu deinem Fork.
-
Klicke oberhalb der Liste der Dateien auf Code.
-
Kopiere die URL für das Repository.
-
Um ein Repository über HTTPS zu klonen, klicke unter „HTTPS“ auf .
-
Wenn du das Repository mithilfe eines SSH-Schlüssels klonen möchtest, einschließlich eines Zertifikats, das von der SSH-Zertifizierungsstelle deiner Organisation ausgestellt wurde, wähle SSH und dann aus.
-
Um ein Repository über die GitHub CLI zu klonen, klicke auf GitHub CLI und dann auf .
-
-
Öffne TerminalTerminalGit Bash.
-
Ändere das aktuelle Arbeitsverzeichnis zum Speicherort, in dem Du das geklonte Verzeichnis haben willst.
-
Gib
git clone
ein, und füge dann die zuvor kopierte URL ein. Sie sieht wie folgt aus (anstelle vonYOUR-USERNAME
wird dein GitHub Enterprise Server-Benutzername verwendet):git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife
-
Drücke die EINGABETASTE. Dein lokaler Klon wird erstellt.
$ git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. > remove: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done.
Weitere Informationen zur GitHub CLI findest du unter Informationen zur GitHub CLI.
Verwende das Flag --clone
, um einen Klon deines Forks zu erstellen.
gh repo fork REPOSITORY --clone=true
-
Klicke im Menü File auf Repository klonen.
-
Klicke auf die Registerkarte, die dem Speicherort des zu klonenden Repositorys entspricht. Du kannst auch auf URL klicken, um den Repository-Speicherort manuell einzugeben.
-
Klicke in der Liste der Repositorys auf das Repository, das du klonen möchtest.
-
Um das lokale Verzeichnis auszuwählen, in das du das Repository klonen möchtest, klicke neben dem Feld „Lokaler Pfad“ auf Auswählen, und navigiere zum Verzeichnis.
-
Klicke unten im Fenster „Repository klonen“ auf Klonen.
Erstellen eines Branches für die Arbeit
Bevor du Änderungen am Projekt vornimmst, solltest du einen neuen Branch erstellen und ihn auschecken. Indem du Änderungen in einem eigenen Branch verwaltest, folgst du dem GitHub-Flow und vereinfachst eine spätere erneute Mitwirkung am selben Projekt. Weitere Informationen findest du unter GitHub-Flow.
git branch BRANCH-NAME
git checkout BRANCH-NAME
git branch BRANCH-NAME
git checkout BRANCH-NAME
Weitere Informationen zum Erstellen und Verwalten von Branches in GitHub Desktop findest du unter Verwalten von Branches in GitHub Desktop.
Vornehmen und Pushen von Änderungen
Nimm mithilfe deines bevorzugten Text-Editors (wie Visual Studio Code) einige Änderungen am Projekt vor. Du könntest beispielsweise den Text in index.html
ändern, um deinen GitHub-Benutzernamen hinzuzufügen.
Wenn du bereit bist, die Änderungen zu übermitteln, stage und committe diese. git add .
teilt Git mit, dass du alle Änderungen im nächsten Commit einschließen möchtest. git commit
erstellt eine Momentaufnahme dieser Änderungen.
git add .
git commit -m "a short description of the change"
git add .
git commit -m "a short description of the change"
Weitere Informationen zum Stagen und Committen von Änderungen in GitHub Desktop findest du unter Committen und Überprüfen von Änderungen an deinem Projekt in GitHub Desktop.
Wenn du Dateien stagest und committest, teilst du Git dadurch mit, dass eine Momentaufnahme der Änderungen erstellt werden kann. Du kannst weiterhin Änderungen vornehmen und mehr Commit-Momentaufnahmen erstellen.
Deine Änderungen sind derzeit nur lokal vorhanden. Wenn du bereit bist, deine Änderungen an GitHub Enterprise Server zu pushen, pushe deine Änderungen an die Remoteseite.
git push
git push
Weitere Informationen zum Pushen von Änderungen in GitHub Desktop findest du unter Pushen von Änderungen an GitHub von GitHub Desktop.
Erstellen eines Pull Request
Nun kannst du Änderungen am Hauptprojekt vorschlagen. Dies ist der letzte und vermutlich wichtigste Schritt bei der Erstellung eines Forks von einem fremden Projekt. Wenn du eine Änderung vorgenommen hast, von der du denkst, dass sie der Community nutzen würde, solltest du auf jeden Fall in Betracht ziehen, diese zu veröffentlichen.
Navigiere dazu zum Repository auf GitHub Enterprise Server, wo sich dein Projekt befindet. In diesem Beispiel wäre es https://github.com/<your_username>/Spoon-Knife
. Es wird ein Banner angezeigt, das angibt, dass dein Branch ein Commit vor octocat:main
ist. Klicke auf Mitwirken und dann auf Einen Pull Request öffnen.
GitHub Enterprise Server leitet dich zu einer Seite weiter, auf der die Unterschiede zwischen deinem Fork und dem octocat/Spoon-Knife
-Repository anzeigt werden. Klicke auf Pull Request erstellen.
GitHub Enterprise Server leitet dich zu einer Seite weiter, auf der du einen Titel und eine Beschreibung für deine Änderungen eingeben kannst. Es ist wichtig, so viele nützliche Informationen und eine Begründung dafür zu liefern, warum du diesen Pull Request überhaupt vornimmst. DerDie Projektbesitzerin muss in der Lage sein, zu entscheiden, ob deine Änderung für die Allgemeinheit so nützlich ist, wie du denkst. Klicke schließlich auf Pull Request erstellen.
Verwalten von Feedback
Pull Requests werden viel diskutiert. Nehmen Sie es nicht persönlich, wenn derdie Projektbesitzerin Ihren Pull Request ablehnt oder weitere Informationen darüber anfordert, warum Sie ihn erstellt haben. Selbst wenn der/die Projektbesitzer*in Ihren Pull Request nicht zusammenführen möchte, sind Ihre Änderungen weiterhin in Ihrer Fork vorhanden. Es könnte sein, dass eine andere Person Ihre Fork viel wertvoller finden wird als das ursprüngliche Projekt.
Auffinden von Projekten
Du hast erfolgreich einen Fork erstellt und zu einem Repository beigetragen. Mach weiter, und trage noch mehr bei!