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.

Platform navigation

Bevor du das ursprüngliche Repository an deine neue Kopie oder Spiegelung des Repositorys übertragen kannst, musst du das neue Repository unter Ihre GitHub Enterprise Server-Instance 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://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
    
  3. Führe den Spiegel-Push in das neue Repository durch.

    cd OLD-REPOSITORY.git
    git push --mirror https://HOSTNAME/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://HOSTNAME/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://HOSTNAME/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://HOSTNAME/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://HOSTNAME/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