Um ein neues Git-Repository aus einem vorhandenen Repository zu erstellen, wird normalerweise ein neues nacktes Repository erstellt und ein oder mehrere Zweige vom vorhandenen in das neue Repository verschoben.
Die folgenden Schritte veranschaulichen dies:
Erstellen Sie ein neues Repository. Es muss kahl sein , damit Sie darauf drängen können.
$ mkdir /path/to/new_repo
$ cd /path/to/new_repo
$ git --bare init
Hinweis : Stellen Sie sicher, dass auf Ihr neues Repository über das vorhandene Repository zugegriffen werden kann. Es gibt viele Möglichkeiten, dies zu tun. Nehmen wir an, Sie haben es über zugänglich gemacht ssh://my_host/new_repo
.
Verschieben Sie einen Zweig aus Ihrem vorhandenen Repository. Angenommen, wir möchten den Zweig topic1
aus dem vorhandenen Repository verschieben und ihn master
im neuen Repository benennen .
$ cd /path/to/existing_repo
$ git push ssh://my_host/new_repo +topic1:master
Mit dieser Technik können Sie den Verlauf des vorhandenen Zweigs beibehalten.
Hinweis: Das neue Repository ist effektiv ein neues Remote- Repository. Wenn Sie mit dem neuen Repository arbeiten möchten, müssen Sie es klonen. Folgendes klont das neue Repo in ein lokales Arbeitsverzeichnis mit dem Namen new_repo
:
$ git clone ssh://my_host/new_repo
In diesem Beispiel sehen Sie beim Klonen des neuen Repositorys, dass der master
Zweig eine Kopie des topic1
Zweigs des alten Repositorys ist.
git remote add origin ssh://my_host/new_repo
. Auf diese Weise machst du einfach einegit push origin [branchname]
. Wenn Sie UNC-Dateipfade verwenden (z. B. für Windows-Freigaben), geben Sie den Remote-Ursprung für diese wiegit remote add origin "//server_name/myapp/"
ssh
Protokolls. Wir hätten aber auch dasfile
Protokoll verwenden können, mit dem das neue Repository auf demselben Dateisystem erstellt worden wäre.Ziehen Sie den Zweig wie gewohnt herunter und verschieben Sie ihn dann in ein neues Repository, das Sie mit erstellt haben
git init
. Sie würden Code verwenden, der ungefähr so aussieht:Diese Methode behält auch alle Ihre vorherigen Änderungen bei, wenn dies ein Plus für die Situation ist.
quelle
Wenn Sie nicht befürchten, den Verlauf zu verlieren, führen Sie a aus
git checkout mybranch
und kopieren Sie den Verzeichnisinhalt in einen anderen Ordner. Löschen Sie in diesem Ordner den Ordner .git und dann:quelle