Ein Repository duplizieren
Um ein Repository zu duplizieren, ohne es zu forken, können Sie einen speziellen Klon-Befehl ausführen und dann einen Spiegel-Push in das neue Repository durchführen.
Inhalt dieses Artikels
- Ein Repository spiegeln
- Ein Repository spiegeln, das Git Large File Storage-Objekte enthält
- Ein Repository an einem anderen Ort spiegeln
Bevor Sie ein Repository duplizieren und zu Ihrer neuen Kopie – zum Spiegel des Repositorys pushen können, müssen Siedas neue Repository auf Ihre GitHub Enterprise Server-Instanz erstellen. In diesen Beispielen sind exampleuser/new-repository
oder exampleuser/mirrored
die Spiegel.
Ein Repository spiegeln
-
Open TerminalTerminalGit Bash.
-
Erstellen Sie einen leeren Klon des Repositorys.
$ git clone --bare https://Hostname/exampleuser/old-repository.git
-
Führen Sie den Spiegel-Push in das neue Repository durch.
$ cd old-repository.git $ git push --mirror https://Hostname/exampleuser/new-repository.git
-
Entfernen Sie das temporäre lokale Repository, das Sie in Schritt 1 erstellt haben.
$ cd .. $ rm -rf old-repository.git
Ein Repository spiegeln, das Git Large File Storage-Objekte enthält
-
Open TerminalTerminalGit Bash.
-
Erstellen Sie einen leeren Klon des Repositorys. Ersetzen Sie den Beispiel-Benutzernamen durch den Namen der Person oder Organisation, der das Repository gehört, und ersetzen Sie den Beispiel-Repository-Namen durch den Namen des Repositorys, das Sie duplizieren möchten.
$ git clone --bare https://Hostname/exampleuser/old-repository.git
-
Navigieren Sie zu dem Repository, das Sie gerade geklont haben.
$ cd old-repository.git
-
Rufen Sie die Git Large File Storage-Objekte des Repositorys ab.
$ git lfs fetch --all
-
Führen Sie den Spiegel-Push in das neue Repository durch.
$ git push --mirror https://Hostname/exampleuser/new-repository.git
-
Pushen Sie die Git Large File Storage-Objekte des Repositorys zu Ihrem Spiegel.
$ git lfs push --all https://github.com/exampleuser/new-repository.git
-
Entfernen Sie das temporäre lokale Repository, das Sie in Schritt 1 erstellt haben.
$ cd .. $ rm -rf old-repository.git
Ein Repository an einem anderen Ort spiegeln
Wenn Sie ein Repository an einem anderen Ort spiegeln und Aktualisierungen vom Original-Repository abrufen möchten, können Sie einen Spiegel klonen und die Änderungen regelmäßig per Push übertragen.
-
Open TerminalTerminalGit Bash.
-
Erstellen Sie einen leeren gespiegelten Klon des Repositorys.
$ git clone --mirror https://Hostname/exampleuser/repository-to-mirror.git
-
Legen Sie den Push-Ort auf Ihren Spiegel fest.
$ cd repository-to-mirror.git $ git remote set-url --push origin https://Hostname/exampleuser/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 der Push-URL vereinfacht Pushes zu Ihrem Spiegel. Um Ihren Spiegel zu aktualisieren, rufen Sie Änderungen ab und übertragen Sie sie per Push.
$ git fetch -p origin
$ git push --mirror