2010-04-04 6 views
14

Ich möchte Git verwenden, um meine Home-Festplatte zu sichern, aber ich möchte es auch als Versionskontrollsystem für Projekte verwenden, die in meinem Home-Laufwerk gespeichert werden.Git als Backup und Versionskontrollsystem

Wie würde ich das machen? Beantworte ich alle Projekte Root-Ordner und neue Repositories für sie?

Edit:

Ok, erklärte ich, was ich falsch wollte. Ich möchte eine Geschichte von Änderungen an meiner Home-Drive haben, wie ich es mit Git bekommen kann und ich möchte das auch bestätigen.

+2

Das ist nicht was Git ist, es ist ein Versionskontrollsystem. –

+2

Die Verwendung von Git, um eine Festplatte zu sichern, ist ein gewaltiger Overkill. – rogeriopvl

+0

@rogeriopvl - nein. es ist nicht übertrieben ... was etwas anderes bedeuten würde ... wie die Verwendung von git zur Versionskontrolle ein Skript aus drei Zeilen. git - es ist einfach nicht das Werkzeug für den Job. Git ist kein Backup-System. – Rook

Antwort

0

Das liest sich ziemlich ähnlich wie das, was ich mache. Ich habe ein Git-Repository in meinem Home-Verzeichnis, aber ich verwende das, um nur die Konfigurationsdateien zu verfolgen, die ich von Hand bearbeiten kann. (Dies schließt Statusdateien aus, die von "modernen" Desktop-Umgebungen und fast allem, was als XML gespeichert ist, beibehalten werden.) Alles andere geht in .gitignore. Es war einmal, dass ich beschloss, dass mein Verzeichnis "notes" und meine ~/.emacs.d in ihre eigenen Repositories gehen sollten, also erstellte ich Git-Repositories in diesen Verzeichnissen und ließ sie vom Haupt-Repository ignorieren.

Ich verwende dieses Setup nicht für Sicherungszwecke, sondern um die verfolgten Dateien zwischen Konten auf verschiedenen Computern zu synchronisieren, aber ich nehme an, dass dies auch für Sicherungen funktionieren könnte.

+0

Nun, es ist möglich, aber für die Synchronisation/Backup-Zwecke wird rsync viel besser funktionieren. –

+2

Nr. Rsync hat keine vernünftige Lösung für mich, wenn ich die gleiche Datei auf zwei verschiedenen Konten bearbeite. (Unison, die Rsync-Algorithmus verwendet, aber es in anderen Problemen fehlschlägt.) Zumindest kann Git widersprüchliche Änderungen erkennen und zusammenführen. rsync hat auch keine Antwort auf die Frage "Wie sah Datei X vor 14 Tagen aus?" – hillu

13

Verwenden Sie rsync für die Sicherung. Verwenden Sie git für die Versionskontrolle.

+1

@mk Erklären, warum nützlich wäre. Warum würden Sie nicht "git clone" und "git pull" zum Synchronisieren/Backup verwenden? – Igor

14

I wrote a blog post about this eine Weile zurück:

Versionskontrollsysteme, mit der möglichen Ausnahme von SourceSafe, sind großartig, um den Code zu verfolgen. Warum das? Weil sie entworfen wurden, um den Code zu verfolgen.

Leider aber die Eigenschaften eines guten VCS sind ganz andere - und oft genau das Gegenteil - das Merkmals, die ein gutes Backup-System zu machen.

Nehmen Sie zum Beispiel Dateibesitz. Ein gutes VCS wird, sehr zu Recht, Dateibesitz ignorieren: wenn ich den Code von jemand anderem auschecke, sollte ich der Besitzer dieser Datei sein - nicht was auch immer UID ursprünglich erstellt sie. Ein gutes Backup-System, auf der anderen Seite, wird alles in seiner Macht, Dateibesitz zu halten: Wenn ich von meinen Backups wiederherstellen, will ich/etc/shaddow im Besitz von root und/home/wolever/im Besitz sein von wolever.

ABER, wenn Sie wirklich wollen, überprüfen bup - soweit ich das beurteilen kann, tut es Backup mit git „rechts“.

+1

Bitte fügen Sie einige Snippets aus dem Artikel hinzu, um [link rot] zu verhindern (http://meta.stackexchange.com/questions/140772/link-rot-encourage-author-to-cache-snippets-of-relevant-text -für-thi vorbereiten). –

+1

Ah, danke. Ich habe einen Auszug hinzugefügt. –

+0

bup sieht gut aus, außer dass es auch stark unterentwickelt aussieht:/ – Andrew

0

Unter Windows git-Erweiterungen sowie die gitGui können Sie ein Repository klonen, die es Ihnen ermöglichen würde, ein Backup ohne alle Dateien in .gitignore zu erstellen.

Nächste 7zip es und Sie sind fertig!

3

Ich habe das backintime-Gnome (Lichtung/Python, getrenntes Backend?) Gefunden, um geplante inkrementelle Backups zu sein, es funktioniert für Ihre tägliche, wöchentliche, monatliche etc .. Dann Git Repos für Quelldateien oder andere Änderungen -kritische Daten würden es schön einpacken. Ich habe nicht mit den bachintime-üblichen Backend-Befehlen gespielt, aber sie scheinen alle Python zu sein.

Ich benutze es in Ubuntu, "Bedenke, dass Back In Time nur eine GUI ist. Die wahre Magie wird durch Rsync (Snapshots und Wiederherstellung), Diff (überprüfen, ob sich etwas geändert hat) und cp (make Hardlinks). " -http: //backintime.le-web.org/documentation/

1

Es gibt einige Projekte, die dieses Problem zu lösen Ziel:

bup scheint die meisten Fortschritte gemacht zu haben: https://github.com/apenwarr/bup

Aber Vielleicht möchten Sie auch nach Gibak oder Kühlhaus suchen.

+0

Ich suche seit einigen Wochen ein neues Backup Tool. Dieses Projekt (bup) sieht gut aus. – guettli

Verwandte Themen