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 Forken eines Repositorys.
Repository forken
In diesem Tutorial wird das Spoon-Knife-Projekt verwendet. Es ist ein Testrepository auf GitHub.com, mit dem du den Fork- und Pull Request-Workflow testen kannst.
-
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.
-
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 AE 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 AE 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 .
1. Öffne TerminalTerminalGit Bash. 4. Ä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 AE-Benutzername verwendet):$ git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife
-
Drücken Sie 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.
1. Klicke in der Liste der Repositorys auf das Repository, das du klonen möchtest. 1. 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.
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 (z. B. 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 AE 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 AE, 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 AE 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 AE 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. In diesem Fall ist Octocat sehr beschäftigt, und wahrscheinlich werden deine Änderungen nicht zusammengeführt. Auch bei anderen Projekten solltest du nicht beleidigt sein, wenn derdie Projektbesitzerin deinen Pull Request ablehnt oder weitere Informationen darüber anfordert, warum du ihn erstellt hast. Es kann sogar sein, dass derdie Projektbesitzerin sich dazu entscheidet, deinen Pull Request nicht zusammenzuführen, und das ist in Ordnung. Deine Änderungen sind in deinem Fork vorhanden. Und wer weiß – vielleicht findet jemand, den du noch nie getroffen hast, deine Änderungen viel wertvoller 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!