2010-01-11 12 views
25

Ich bin gerade dabei, eine Git-Arbeitskopie von unserem SVN-Server mit 'git svn clone' zu erstellen. Aber das dauert ziemlich lange (wir haben> 20.000 Umdrehungen und fast 10.000 Dateien). Ich habe einige andere Maschinen (für andere Entwickler), die ich auf die gleiche Weise einrichten möchte. Wird es möglich sein, die resultierenden Dateien von der ersten Maschine auf andere zu kopieren, um weniger Zeit zu verlieren?Kann ich eine Git-Arbeitskopie auf eine andere Maschine kopieren?

Mit anderen Worten, gibt es etwas in einer Git Arbeitskopie, die es an die Maschine bindet, auf der es erstellt wurde?

Danke.

+5

Ja, Sie können, aber es ist nicht notwendig, den gesamten funktionierenden Baum zu kopieren. Sie können nur den '.git'-Ordner ohne den funktionierenden Baum (d. H. Als" blankes "Repo) kopieren und dann den letzten funktionierenden Baum auf dem anderen Rechner auschecken. –

Antwort

32

Sie können es kopieren, alles befindet sich in dem .git-Ordner und ist von nichts anderem abhängig.

+8

Fast wahr. Abgesehen von Konfigurationselementen wie benutzerdefinierten diff-Treibern und Hook-Skripts, die möglicherweise auf externe Programme verweisen, gibt es einige einfache Konfigurationselemente, die normalerweise plattformübergreifend variieren. Beim Kopieren zwischen verschiedenen Plattformen sollte man Elemente wie core.ignorecase, core.autocrlf, core.safecrlf, core.fileMode (und wahrscheinlich einige andere) aktivieren/deaktivieren. Ich denke jedoch, dass es immer sicher sein sollte, aus einem kopierten .git-Verzeichnis erneut zu klonen. –

2

Nein, es ist in Ordnung, nur das Stammverzeichnis des Repos zu kopieren. Stellen Sie sicher, dass Sie auch alle unsichtbaren Dateien, speziell das Verzeichnis .git (im Stammverzeichnis des Projekts), die alle Konfigurationsinformationen für den Repo enthält.

7

Es ist auch erwähnenswert, dass wenn Sie keine lokalen Änderungen haben ("git status" zeigt nichts, was Sie behalten möchten), können Sie nur das .git-Verzeichnis kopieren und ein "git checkout". aus dem (fast leeren) Repository-Stammverzeichnis am Ende.

Wenn es sich um eine langsame Verbindung handelt, lohnt es sich möglicherweise, das Repository vor der Übertragung erneut zu packen.

Das einzige, worüber ich mich ein bisschen Sorgen mache, ist, ob git-svn sich einige Benutzerinformationen merkt, die Sie nicht zu den anderen Entwicklern kopieren wollen.

+1

Mein Name und meine E-Mail-Adresse erscheinen tatsächlich in .git/logs/refs/remotes/trunk. Obwohl das Verzeichnis "logs" heißt, frage ich mich, ob dies ein Problem für einen anderen Entwickler sein könnte ... –

Verwandte Themen