Skip to main content

Zu einem Projekt beitragen

Erfahre, wie du durch Forken zu einem Projekt beiträgst.

Platform navigation

Informationen zu Forks

Wenn du am Projekt einer anderen Person mitwirken möchtest, aber nicht über die Berechtigung zum direkten Vornehmen von Änderungen verfügst, kannst du eine eigene Kopie des Projekts erstellen, Aktualisierungen durchführen und diese dann für die Aufnahme in das Hauptprojekt vorschlagen. Dieser Prozess wird häufig als „Fork und Pull Request“-Workflow bezeichnet.

Wenn du eine eigene Kopie (oder „Fork“) eines Projekts erstellst, kann dies mit dem Erstellen eines neuen Arbeitsbereichs verglichen werden, der über denselben Code verfügt wie das ursprüngliche Projekt. Dies ist nützlich für Open-Source-Projekte oder wenn du keinen Schreibzugriff auf das ursprüngliche Projekt hast.

Nachdem du die Änderungen in deiner Kopie vorgenommen hast, kannst du sie als Pull Request übermitteln. Dies ist eine Möglichkeit, Änderungen am Hauptprojekt vorzuschlagen. Weitere Informationen finden Sie unter Ein Repository forken.

Erstellen einer eigenen Kopie eines Projekts

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.

  1. Navigiere zum Spoon-Knife-Projekt auf https://github.com/octocat/Spoon-Knife.

  2. Klicke in der oberen rechten Ecke der Seite auf Forken.

    Screenshot der Hauptseite eines Repositorys. Eine Schaltfläche mit einem Forkensymbol und der Bezeichnung „Fork 59.3k“ ist dunkelorange umrandet.

  3. 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 finden Sie unter Einen Fork synchronisieren.

  4. 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.

  5. Gib optional im Feld „Beschreibung“ eine Beschreibung für deinen Fork ein.

  6. 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.

  7. Klicke auf Fork erstellen.

Note

Du kannst über die Seite Branches weitere Branches aus dem Upstreamrepository kopieren. Weitere Informationen finden Sie unter Erstellen und Löschen von Branches in deinem Repository.

Klonen eines Forks auf deinem Computer

Du hast erfolgreich einen Fork des Spoon-Knife-Repositorys erstellt. Bisher ist es jedoch nur auf GitHub 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.

  1. Navigiere auf GitHub im Spoon-Knife-Repository zu deinem Fork.

  2. Klicke oberhalb der Liste der Dateien auf Code.

    Screenshot: Liste der Dateien auf der Startseite eines Repositorys. Die Schaltfläche „Code“ ist orange umrandet.

  3. 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 .

      Screenshot des Dropdownmenüs „Code“ Rechts neben der HTTPS-URL für das Repository ist ein Kopiersymbol dunkelorange umrandet.

  4. Öffne TerminalTerminalGit Bash.

  5. Ändere das aktuelle Arbeitsverzeichnis zum Speicherort, in dem Du das geklonte Verzeichnis haben willst.

  6. Gib git clone ein, und füge dann die zuvor kopierte URL ein. Sie sieht wie folgt aus (anstelle von YOUR-USERNAME wird dein GitHub-Benutzername verwendet):

    git clone https://github.com/YOUR-USERNAME/Spoon-Knife
    
  7. Drücke die EINGABETASTE. Dein lokaler Klon wird erstellt.

    $ git clone https://github.com/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.
    

Note

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
  1. Klicke im Menü File auf Repository klonen.

    Screenshot der Menüleiste auf einem Mac. Das Dropdownmenü „Datei“ wird erweitert, und die Option „Repository klonen“ ist orange umrandet.

    Screenshot der Menüleiste „GitHub Desktop“ unter Windows. Das Dropdownmenü „Datei“ wird erweitert, und die Option „Repository klonen“ ist orange umrandet.

  2. Klicke auf die Registerkarte, die dem Speicherort des zu klonenden Repositorys entspricht. Du kannst auch auf URL klicken, um den Repository-Speicherort manuell einzugeben.

    Screenshot des Fensters „Repository klonen“. Oben im Fenster werden Registerkarten mit der Bezeichnung „GitHub.com“, „GitHub Enterprise“ und „URL“ durch einen orangefarbenen Rahmen hervorgehoben.

  3. Klicke in der Liste der Repositorys auf das Repository, das du klonen möchtest.

    Screenshot des Fensters „Repository klonen“. Das Repository „github/docs“ ist orange umrandet.

  4. 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.

    Screenshot des Fensters „Repository klonen“. Eine Schaltfläche mit der Beschriftung „Auswählen“ ist orange umrandet.

  5. 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 Fork erstellen und ihn auschecken. Du folgst dem GitHub-Flow, wenn du die Änderungen in deinem eigenen Branch beibehältst, und stellst sicher, dass ein Mitwirken an demselben Projekt in der Zukunft einfacher ist. 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. Zum Beispiel könntest du 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 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, 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 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 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. Du kannst noch mehr beitragen. Weitere Informationen findest du unter Möglichkeiten finden, um zu Open-Source auf GitHub beizutragen.

Vertrautmachen mit einem Projekt

Wenn du noch nicht mit einem Projekt vertraut bist, kannst du Copilot verwenden, um den Zweck des Repositorys nachzuvollziehen, Dateien zu untersuchen und bestimmte Codezeilen genauer zu betrachten. Weitere Informationen findest du unter Verwenden von GitHub Copilot zum Erkunden von Projekten.