Mit der Tatsache, dass ein Git Repo in sich abgeschlossen ist und einfach kopiert werden kann, brauchen wir nur eine Möglichkeit, eine Kopie zu machen und von bloßen zu nicht-bare für unsere ersten Versuche zu konvertieren.
Klonen ist immer noch die beste Form des anfänglichen Kopierens, wenn diese Option möglich ist (siehe Arbeitsumgebungen 1 und 2). Wenn nicht, können wir einfach vom Server kopieren, wenn der Zugriff verfügbar ist, und es manuell konvertieren (siehe # 3). Wenn dies nicht gelingt, funktioniert vielleicht das Kopieren/Klonen eines kleineren Teils des Repos?
Work-around 1 - Klon auf USB vom Server
auf dem Server (wenn Sie Zugriff haben), Klon in einen Ordner USB-Laufwerk (als nicht-bare Repo), USB in Ziel Maschine kleben, und verschiebe/kopiere es einfach an den endgültigen Ort, an dem du das Repo haben möchtest. Git Befehl sollte sein:
git clone /path/to/bare/repo /local/repo/folder
Ich denke dies nicht kopieren jede Waise verpflichtet (diejenigen, die schließlich Garbage Collection wird).
Work-around 2 - Clone auf einen anderen PC kopieren Sie dann
Clone Repo auf einen anderen PC, Kopieren/Verschieben Ordner irgendwie PC zum Ziel (USB, Netzwerkverbindung, etc.). Ähnlich wie # 1
Work-around 3 - Kopieren von Server, konvertieren von nackten
Dies setzt voraus, Zugriff auf den Server, vielleicht durch eine Netzwerkfreigabe statt direkt (sonst # 1 verwenden). Kopieren Sie das leere Repo lokal, und machen Sie dann etwas like this, um es in ein nicht leeres Repo umzuwandeln.
Work-around 4a - Clone nur einen Zweig zu einer Zeit
It appears you can clone only a single branch at a time, die sich unter den Grenzen passen kann Ihr Gedächtnis Problem verursacht:
git clone [url/folder] -b master --single-branch [local repo folder]
Hinweis Sie neue Filialen auf dem Server erstellen können, dass sind ein bisschen zurück in der Geschichte, um weniger auf einmal zu ziehen, aber basierend auf der Antwort in dem obigen Link, müssen Sie möglicherweise durch einige Reifen springen, um die "Einfach-Verzweigung" Ihres neuen Repos zu entfernen.
Work-around 4b - Shallow Repo
Verwendung --depth <depth>
und/oder anderen flachen Tags eine lokale Repo mit einer begrenzten commit Geschichte Tiefe zu machen. Von git clone --help
Manpage:
--depth erstellen flachen Klon mit einer Geschichte auf die angegebene Anzahl von Commits abgeschnitten. Impliziert --single-branch wenn nicht --no-single-branch angegeben wird, um die Historien in der Nähe der Spitzen aller Zweige abzurufen. Wenn Sie Submodule flach klonen möchten, übergeben Sie auch --shallow-submodules.
--shallow-since = Erstellen Sie einen flachen Klon mit einem Verlauf nach der angegebenen Zeit.
--shallow-exclude = Erstellen Sie einen flachen Klon mit einem Verlauf, mit Ausnahme von Commits, die von einer bestimmten Remote-Verzweigung oder einem Remote-Tag erreichbar sind. Diese Option kann mehrmals angegeben werden.
- [no-] single-branch Klonen Sie nur den Verlauf, der zur Spitze eines einzelnen Zweigs führt, der entweder durch die Option --branch oder die HEAD-Punkte des primären Zweigs angegeben wird. Weitere Abrufe in das resultierende Repository aktualisieren nur den Remote-Tracking-Zweig für den Zweig, für den diese Option beim ersten Klonen verwendet wurde. Wenn der HEAD auf der Fernbedienung bei der Erstellung eines einzelnen Zweigclons nicht auf eine Verzweigung zeigte, wird keine Remoteverfolgungsverzweigung erstellt.
Work-around 4c - Clone/Checkout nur einige Dateien zu einer Zeit
Siehe this answer und es ist Link für Anweisungen, wie zu einem Zeitpunkt nur einen Teil eines Repo nach unten zu ziehen. Hässlich, aber könnte arbeiten, um Teil zu einer Zeit zu klonen.
Wo befindet sich das leere Repo? Auf einem Cloud-Dienst (wie Github) oder einem Dienst im lokalen Netzwerk (oder sogar nur in einem lokalen Server/Datei)? – LightCC
Das leere Repo befindet sich auf einem lokalen Server. Ich habe ein Windows-Laufwerk, das mit dem freigegebenen Ordner verbindet. –
'versucht, 2251896833 Bytes zuzuweisen'; Was ist 2,147 MB, und Sie haben ein Limit von 1024 MB festgelegt? Verfügen Sie über 2 GB verfügbaren Arbeitsspeicher? –