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

> \[!NOTE]
> Wenn du ein Projekt in einem anderen Git-basierten Hostingdienst gehostet hast, kannst du dein Projekt automatisch mit dem GitHub-Tool in GitHub Importer importieren. Weitere Informationen finden Sie unter [Informationen zu GitHub Importer](/de/migrations/importing-source-code/using-github-importer/about-github-importer).

Bevor du das ursprüngliche Repository an deine neue Kopie oder *Spiegelung* des Repositorys übertragen kannst, musst du [das neue Repository](/de/repositories/creating-and-managing-repositories/creating-a-new-repository) unter GitHub.com erstellen. In diesen Beispielen sind `exampleuser/new-repository` oder `exampleuser/mirrored` die Spiegel.

## Ein Repository spiegeln

1. Öffne <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

2. Erstelle einen leeren Klon des Repositorys.

   ```shell
   git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
   ```

3. Führe den Spiegel-Push in das neue Repository durch.

   ```shell
   cd OLD-REPOSITORY
   git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
   ```

4. Entferne das temporäre lokale Repository, das du früher erstellt hast.

   ```shell
   cd ..
   rm -rf OLD-REPOSITORY
   ```

## Ein Repository spiegeln, das Git Large File Storage (Speicher für große Dateien)-Objekte enthält

1. Öffne <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

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.

   ```shell
   git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git
   ```

3. Navigiere zu dem Repository, das du gerade geklont hast.

   ```shell
   cd OLD-REPOSITORY
   ```

4. Rufe die Git Large File Storage (Speicher für große Dateien)-Objekte des Repositorys ab.

   ```shell
   git lfs fetch --all
   ```

5. Führe den Spiegel-Push in das neue Repository durch.

   ```shell
   git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
   ```

6. Übertrage die Git Large File Storage (Speicher für große Dateien)-Objekte des Repositorys zu deinem Spiegel.

   ```shell
   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.

   ```shell
   cd ..
   rm -rf OLD-REPOSITORY
   ```

## 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 <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

2. Erstelle einen leeren gespiegelten Klon des Repositorys.

   ```shell
   git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
   ```

3. Lege den Push-Ort auf deinen Spiegel fest.

   ```shell
   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.

   ```shell
   git fetch -p origin
   git push --mirror
   ```

## Weiterführende Lektüre

* [Übertragen von Änderungen auf GitHub mit GitHub Desktop](/de/desktop/making-changes-in-a-branch/pushing-changes-to-github-from-github-desktop#pushing-changes-to-github)
* [Informationen zu Git Large File Storage und GitHub Desktop](/de/desktop/configuring-and-customizing-github-desktop/about-git-large-file-storage-and-github-desktop)