Skip to main content

Ein Repository duplizieren

Um einen Mirror eines Repository zu behalten, ohne es zu forken, kannst du einen speziellen Klonbefehl ausführen und dann einen Spiegel-Push in das neue Repository durchführen.

Hinweis: Wenn du ein Projekt auf einem anderen Versionskontrollsystem gehostet hast, kannst du dein Projekt automatisch mit dem GitHub-Importer in GitHub importieren. Weitere Informationen findest du unter Informationen über GitHub-Importer.

Bevor du das ursprüngliche Repository an deine neue Kopie oder Spiegelung des Repositorys übertragen kannst, musst du das neue Repository unter GitHub.com erstellen. In diesen Beispielen sind exampleuser/new-repository oder exampleuser/mirrored die Spiegel.

Ein Repository spiegeln

  1. Öffne TerminalTerminalGit Bash.
  2. Erstelle einen leeren Klon des Repositorys.
    $ git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
  3. Führe den Spiegel-Push in das neue Repository durch.
    $ cd OLD-REPOSITORY.git
    $ git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
  4. Entferne das temporäre lokale Repository, das du früher erstellt hast.
    $ cd ..
    $ rm -rf OLD-REPOSITORY.git

Ein Repository spiegeln, das Git Large File Storage-Objekte enthält

  1. Öffne TerminalTerminalGit Bash.
  2. Erstelle einen leeren Klon des Repositorys. Ersetze den Beispiel-Benutzernamen durch den Namen der Person oder Organisation, der das Repository gehört, und ersetze den Beispiel-Repository-Namen durch den Namen des Repositorys, das du duplizieren möchtest.
    $ git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
  3. Navigiere zu dem Repository, das du gerade geklont hast.
    $ cd OLD-REPOSITORY.git
  4. Rufe die Git Large File Storage-Objekte des Repositorys ab.
    $ git lfs fetch --all
  5. Führe den Spiegel-Push in das neue Repository durch.
    $ git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
  6. Übertrage die Git Large File Storage-Objekte des Repositorys zu deinem Spiegel.
    $ git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
  7. Entferne das temporäre lokale Repository, das du früher erstellt hast.
    $ cd ..
    $ rm -rf OLD-REPOSITORY.git

Ein Repository an einem anderen Ort spiegeln

Wenn du ein Repository an einem anderen Ort spiegeln und Aktualisierungen vom Original-Repository abrufen möchtest, kannst du einen Spiegel klonen und die Änderungen regelmäßig per Push übertragen.

  1. Öffne TerminalTerminalGit Bash.

  2. Erstelle einen leeren gespiegelten Klon des Repositorys.

    $ git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
  3. Lege den Push-Ort auf deinen Spiegel fest.

    $ cd REPOSITORY-TO-MIRROR
      $ git remote set-url --push origin https://github.com/EXAMPLE-USER/MIRRORED

    Wie ein leerer Klon enthält ein gespiegelter Klon alle Remote-Branches und Tags. Alle lokalen Verweise werden jedoch bei jedem Abrufen überschrieben, sodass er immer mit dem Original-Repository übereinstimmt. Das Festlegen einer Push-URL vereinfacht Pushes zu deinem Spiegel.

  4. Um deinen Spiegel zu aktualisieren, rufe Änderungen ab und übertrage sie per Push.

    $ git fetch -p origin
    $ git push --mirror

Weiterführende Themen