Wie man $ HOME mit git verfolgt

2558
Francesco

Ich möchte mein $ HOME-Verzeichnis mit git verfolgen. Ich habe viele andere Git-Repos in anderen Subdirs (zB $ HOME / projects / repo_1 usw.), die nicht verfolgt werden sollten, da sie bereits vorhanden sind.

Ich habe git-home-history gefunden, aber aus dem Archiv geht hervor, dass das Projekt nicht mehr aktiv entwickelt wird.

Welchen Ansatz haben Sie empfohlen? Ist ghh reif genug?

Ich bin auf einem Mac, interessiere mich aber auch für plattformübergreifende Lösungen.

Vielen Dank

ps: Ich habe nachgeschaut, aber keine Duplikate gefunden. Bitte weisen Sie darauf hin, wenn dies bereits besprochen wurde.

10

3 Antworten auf die Frage

5
intuited

Ich mache das schon eine Weile, nur mit git. Ich kann nicht das gesamte Heimatverzeichnis nachverfolgen, sondern nur die Teile, die ich aktiv verändere. Dies beinhaltet mein home / bin-Verzeichnis, das viele kleine Skripte enthält, mein .vim-Verzeichnis und einige größere Projekte in anderen Verzeichnissen. Es gibt auch einige Konfigurationen für Terminals und Openbox sowie verschiedene andere Apps, die zum Repo hinzugefügt werden.

Das funktioniert gut genug, da alle diese Sachen über die gleichen Berechtigungen verfügen und der ursprüngliche Zeitstempel mir egal ist. Es ist an dem Punkt, an dem ich vorhabe, einen Teil davon in Submodule aufzuteilen git filter-branch. Dies ist jedoch ein bisschen schwierig, da es Abhängigkeiten zwischen Dateien in verschiedenen Unterverzeichnissen gibt (z. B. rufen einige .vim-Skripts möglicherweise Skripts aus meinem bin-Verzeichnis auf ... kein sehr gutes Beispiel, aber hoffentlich haben Sie den Punkt verstanden).

Ich habe keine umfassenderen Lösungen gefunden, aber auch nicht wirklich nachgedacht, einschließlich der Git-Home-Geschichte. Es scheint ziemlich kompliziert zu sein, das gesamte Home-Verzeichnis unter Revisionskontrolle zu stellen, und es würde eine Menge Variablen geben. Wenn Sie beispielsweise Ihre Firefox-Profile unter Revisionskontrolle setzen, werden Sie am Ende riesige Mengen binärer Differentiale aufstapeln. Es gibt auch Dinge wie ssh-Schlüssel, die oft besser verloren gehen als dupliziert.

Wenn Sie Berechtigungen verfolgen möchten (abgesehen von dem ausführbaren Bit, das git bereits verfolgt), gibt es anscheinend einen Haken, der dies tut. Es wird in diesem Serverfault-Thread erwähnt .

Sie haben meinen Anwendungsfall verstanden: Tatsächlich interessiere ich mich für die Versionierung von Skripten und Konfigurationen. Ich werde mit diesem grundlegenden Ansatz gehen. Francesco vor 14 Jahren 0
FYI: The problem that I'm running into these days is that I don't want to branch my .vim directory when working on new components. I'm considering a bunch of different approaches: I'll probably end up splitting it into a separate module using `filter-branch`, and setting up a 'work in progress' clone of it in a subdirectory of ~. This seems to be a generally useful strategy: I expect that it will be similarly useful to clone my entire home dir repo, then test scripts after setting $HOME to the clone directory. I'm not sure how universally respected that environment variable is but I'll see. intuited vor 14 Jahren 0
0
edgester

Sie können git in Ihrem Home-Verzeichnis verwenden und dann git-Submodule oder revise-tree für die externen git-Projekte verwenden, an denen Sie arbeiten.

-1
David M

Hier ist ein Artikel mit einer Schritt-für-Schritt-Anleitung, um zu tun, was Sie wollen:

http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/

Dieser Link funktioniert nicht mehr Cougar vor 12 Jahren 2