2010-01-12 8 views
9

Ich brenne meine Sachen auf einer DVD, bevor eine schnelle Neuinstallation. Habe das nie mit git getan, als neuer Benutzer. Ich checke nur mit euch. Wenn ich richtig verstanden habe, muss ich nur mein Projektverzeichnis Projektname sichern (das .git darin hat), das nach versteckten Akten zusammen mit ihm sucht, und wenn ich es auf die "neue" Maschine kopiere und git wieder installiere, ich weitermachen wie nichts passiert ist? Richtig ?Backup-Projekt, das Git verwendet

+0

Der Hauptvorteil des Bündels ist seine Fähigkeit, nur einen Teil der Geschichte des Haupt Repo zu bündeln, Damit können Sie inkrementelle Sicherungen erstellen und sie inkrementell auf das Ziel anwenden. Plus, seine einzige zu kopierende Datei. – VonC

Antwort

8

yep. Stimmt.

+4

die kürzeste und die meisten sorgenentlastende Antwort aller Zeiten :) – Rook

+4

Ich versuchte nur zu sagen "yep." Aber ich kann keine Antworten mit weniger als 15 Zeichen posten: P Ein git-Repository ist einfach ein Ordner (und seine Unterordner) mit einem .git-Verzeichnis, das mit git init initialisiert wurde. Sie können diesen Ordner überall verschieben und es wird mit Git funktionieren. –

+0

Ich bin auch neu in Git und komme daher auf diese Frage. Obwohl 'git bundle' nach anderen Antworten hier eine bessere Option zu sein scheint, wenn man Dateien manuell sichert, muss sicher nur der Ordner _.git_ gesichert werden. Kann der aktuelle Status eines Zweiges aus dem Inhalt dieses Ordners korrekt rekonstruiert werden? –

11

Wenn Sie nur Backup-Projektdateien (ohne Geschichte) möchten, können Sie git archive verwenden (auf diese Weise, ich habe nicht auf „versteckte Datei watch“)

Das Skript git-archive-all.sh alle git Repositories tatsächlich archivieren und Submodule im aktuellen Pfad.

Nützlich zum Erstellen einer einzelnen TAR-Datei eines Git-Super-Projekts, die andere Submodule enthält.


Wie Charles Bailey zu Recht in den Kommentaren erwähnt, ist git bundle besser geeignet, die Geschichte zu bewahren. (git bundle wurde in February 2007 eingeführt).

Siehe Backing up a git repository with git bundle

git bundle entworfene Übertragung von git zu ermöglichen, verpflichtet, wenn es keine direkte Verbindung zwischen Repositories (dh: offline), aber unter Verwendung von Patches ist keine Option wegen der großen Anzahl von Commits und mehr Geäst.
Ein git bundle ist nur eine Datei, die sehr einfach erstellt und erneut importiert werden kann, da sie wie eine andere Fernbedienung behandelt werden kann. Ein kurzes Beispiel:

[email protected]:~/devel$ git bundle create ~/devel.bdl master test 

und ein Bündel unter ~/devel.bdl sparte meinen Master und Test Zweige enthalten.
Wenn ich jetzt bei Repository B bin, verwende ich einfach [email protected]:~$ git ls-remote devel.bdl, die mir die im Bündel gespeicherten Zweige zeigt.
Um das Bündel ich einfach behandelt sie wie eine Fernbedienung zu verwenden, mit Git holen (zum Beispiel)

[email protected]:~/git/repoB$ git fetch ~/devel.bdl refs/heads/\*:refs/remotes/bundle/\* 
+1

Das 'git-archive-all' ist von mirar (http: // github.com/meitar) – VonC

+1

Für ein Backup halte ich 'git bundle' für besser geeignet als' git archive'. 'git archive' erstellt nur Tarballs von Bäumen (Snapshots), behält aber keine Commits und Historien bei. 'git bundle' erstellen ohne Abhängigkeiten kann ein gefriergetrocknetes Repository von beliebig vielen Filialen sein. –

+1

@Charles: Danke für den Kommentar. Ich habe meine Antwort entsprechend bearbeitet. – VonC

Verwandte Themen