2010-12-07 4 views
16

Also ich möchte in der Lage sein, ein Git-Repository zu sichern, das mehrere Zweige auf eine externe Festplatte haben kann, und es später zu einem späteren Zeitpunkt wieder auf meinen lokalen Rechner kopieren und damit wie gewohnt arbeiten zu können? Ich habe versucht, einfach den Arbeitsverzeichnis-Ordner zu kopieren, der das .git-Verzeichnis enthält, und es hat funktioniert. Ich habe mich jedoch gefragt, ob das der beste Weg war oder ob es später Fallen gab.Wie kann ein gesamtes Git-Repository auf einem externen Datenträger am besten gesichert werden?

Antwort

20

Das Kopieren der gesamten Arbeitskopie mit regulären Dateisystemkopierbefehlen funktioniert einwandfrei. Sie können die Sicherung auch komprimieren/tarieren.

Wenn Sie sich Sorgen um Speicherplatz machen, können Sie auch "git bundle" betrachten, was kleinere Dateien erzeugen könnte.

Sie können inkrementelle Backups auch erhalten, indem Sie einfach einen neuen Repo auf dem externen Datenträger (Git Clone) starten und dann die Änderungen jedes Mal ziehen (Git Pull). Es gibt keinen großen Unterschied zwischen einer Sicherungskopie und einer Arbeitskopie in einem verteilten System wie git.

+0

Vielen Dank diese Info ausgearbeitet. Entschuldigung für die verspätete Annahme. Ich ging für ein paar Tage weg. – racl101

+0

Ich habe Schwierigkeiten, Ihren dritten Vorschlag, inkrementelle Backups mit Git, wegen der Unterverzeichnisse zu implementieren, die selbst versioniert sind und somit leer sind. Unter http://stackoverflow.com/q/24198280/2533127. –

0

Hier gibt es keine Fehler, git ist ein vollständig verteilter SCM. Das Kopieren einer Arbeitskopie mit dem Verzeichnis .git ist eine ausreichende Sicherung.

2

Das ist der einzige Weg, es zu tun, kurz vor dem Klonen des Repository auf der externen Festplatte. Beide Vorgehensweisen sind jedoch in etwa gleichwertig, mit der Ausnahme, dass beim Kopieren Ihres Klons alle Repo-spezifischen Konfigurationseinstellungen beibehalten werden.

0

Kopieren der gesamten Sache oder mit einem Sync-Tool ist in Ordnung. Das Repo ist vollständig und portabel.

5

Wenn Sie keine Änderungen an der Sicherung in Ihrem Arbeitsbaum haben, können Sie git clone --mirror verwenden, um einen nackten Klon zu erstellen, in dem alle Referenzen (Verzweigungen, Tags, absolut alles) wortwörtlich kopiert werden. Sie können dann git push --mirror verwenden, um es inkrementell auf dem neuesten Stand zu halten. Dafür ist es gedacht.

Das Kopieren des gesamten Repos, einschließlich des Arbeitsbaums, funktioniert ebenfalls, aber es ist ein bisschen mühsam, inkrementell zu arbeiten und nimmt offensichtlich mehr Platz in Anspruch.

+0

Alles ... außer Namensräumen – Izkata

1

Summieren,

  • Sie können das verdammte Verzeichnis einfach kopieren, sicher, dass es funktioniert.
  • Sie können klonen.
  • Sie können git bundle oder git archive

können Sie auch,

, die Sie in einer einzigen Datei-Dump, die Sie später importieren können aus .

$ git fast-export --all | (cd /empty/repository && git fast-import) 
Verwandte Themen