Skip to main content

Einen Fork synchronisieren

Synchronisiere den Fork eines Repositorys, um ihn auf dem aktuellen Stand mit dem vorgelagerten Repository zu halten.

Wer kann dieses Feature verwenden?

People with write access for a forked repository can sync the fork to the upstream repository.

Platform navigation

Synchronisieren eines Forks über die Webbenutzeroberfläche

  1. Navigiere in GitHub zur Hauptseite des geforkten Repositorys, das du mit dem vorgelagerten Repository synchronisieren möchtest.

  2. Wähle über der Liste mit den Dateien das Dropdownmenü Fork synchronisieren aus.

    Screenshot: Hauptseite eines Forks. Ein Dropdownmenü mit einem Synchronisierungssymbol und dem Text „Fork synchronisieren“ ist dunkelorange umrandet.

  3. Überprüfe die Details zu den Commits aus dem vorgelagerten Repository, und klicke dann auf Branch aktualisieren.

Wenn die Änderungen aus dem vorgelagerten Repository Konflikte verursachen, fordert GitHub dich auf, einen Pull Request zu erstellen, um die Konflikte zu beheben.

Synchronisieren eines Forkbranches mit GitHub CLI

GitHub CLI ist ein Open-Source-Tool zur Verwendung von GitHub über die Befehlszeile deines Computers. Wenn du über die Befehlszeile arbeitest, kannst du die GitHub CLI verwenden, um Zeit zu sparen und Kontextwechsel zu vermeiden. Weitere Informationen zu GitHub CLI findest du unter Informationen zur GitHub CLI.

Verwende zum Aktualisieren des Remoteforks aus dem übergeordneten Element den Unterbefehl gh repo sync -b BRANCHNAME, und gib den Forknamen und den Branchnamen als Argument an.

gh repo sync owner/cli-fork -b BRANCH_NAME

Wenn die Änderungen aus dem vorgelagerten Repository Konflikte verursachen, kann GitHub CLI keine Synchronisierung ausführen. Du kannst das Flag --force festlegen, um den Zielbranch zu überschreiben.

Synchronisieren eines Forkbranches über die Befehlszeile

Bevor du den Fork mit einem vorgelagerten Repository synchronisieren kannst, musst du in Git ein Remoterepository konfigurieren, das auf das vorgelagerte Repository verweist. Weitere Informationen findest du unter Konfigurieren eines Remoterepositorys für einen Fork.

  1. Öffne TerminalTerminalGit Bash.

  2. Ändere das aktuelle Arbeitsverzeichnis in das lokale Projekt.

  3. Rufe die Branches und die jeweiligen Commits aus dem vorgelagerten Repository ab. Commits in BRANCHNAME werden im lokalen Branch upstream/BRANCHNAME gespeichert.

    $ git fetch upstream
    > remote: Counting objects: 75, done.
    > remote: Compressing objects: 100% (53/53), done.
    > remote: Total 62 (delta 27), reused 44 (delta 9)
    > Unpacking objects: 100% (62/62), done.
    > From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
    >  * [new branch]      main     -> upstream/main
    
  4. Sieh dir den lokalen Standardbranch des Forks an. In diesem Fall verwenden wir main.

    $ git checkout main
    > Switched to branch 'main'
    
  5. Führe die Änderungen aus dem vorgelagerten Standardbranch (in diesem Fall upstream/main) in deinem lokalen Standardbranch zusammen. Dadurch wird der Standardbranch deines Forks ohne Verlust der lokalen Änderungen mit dem vorgelagerten Repository synchronisiert.

    $ git merge upstream/main
    > Updating a422352..5fdff0f
    > Fast-forward
    >  README                    |    9 -------
    >  README.md                 |    7 ++++++
    >  2 files changed, 7 insertions(+), 9 deletions(-)
    >  delete mode 100644 README
    >  create mode 100644 README.md
    

    Wenn dein lokaler Branch noch keine eindeutigen Commits besitzt, führt Git eine schnelle Weiterleitung aus. Weitere Informationen findest du unter Basic Branching and Merging in der Git-Dokumentation.

    $ git merge upstream/main
    > Updating 34e91da..16c56ad
    > Fast-forward
    >  README.md                 |    5 +++--
    >  1 file changed, 3 insertions(+), 2 deletions(-)
    

    Wenn dein lokaler Branch eindeutige Commits hatte, musst du möglicherweise Konflikte lösen. Weitere Informationen findest du unter Mergekonflikte beheben.

Tipp: Durch Synchronisierung des Forks wird nur die lokale Kopie des Repositorys aktualisiert. Um den Fork auf GitHub.com zu aktualisieren, musst du deine Änderungen pushen.