Wie man $ HOME mit git verfolgt

10

Ich möchte mein $ HOME-Verzeichnis mit git verfolgen. Ich habe viele andere Git-Repos in anderen Unterverzeichnissen (z. B. $ 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, aber ich interessiere mich auch für plattformübergreifende Lösungen.

Vielen Dank

ps: Ich habe nach Duplikaten gesucht, diese aber nicht gefunden. Bitte weisen Sie darauf hin, wenn dies bereits besprochen wurde.

Francesco
quelle

Antworten:

5

Ich mache das schon eine Weile nur mit Git. Ich verfolge nicht das gesamte Home-Verzeichnis, sondern nur die Teile, die ich aktiv ändere. Dies umfasst 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 dem Repo hinzugefügt wurden.

Dies funktioniert gut genug, da all diese Dinge den gleichen Berechtigungssatz haben und mir der ursprüngliche Zeitstempel egal ist. Es kommt zu dem Punkt, an dem ich vorhabe, einen Teil davon mithilfe von Submodulen aufzuteilen git filter-branch. Dies ist jedoch etwas schwierig, da es Abhängigkeiten zwischen Dateien in verschiedenen Unterverzeichnissen gibt (z. B. rufen einige .vim-Skripte möglicherweise Skripte aus meinem bin-Verzeichnis auf ... kein sehr gutes Beispiel, aber hoffentlich verstehen Sie den Punkt).

Ich habe keine umfassenderen Lösungen gefunden, aber auch keine wirklich untersucht, einschließlich der Git-Home-Geschichte. Es scheint ziemlich kompliziert zu sein, das gesamte Home-Verzeichnis unter Revisionskontrolle zu stellen, und es würde viele Variablen geben. Wenn Sie beispielsweise Ihre Firefox-Profile unter Revisionskontrolle stellen, werden Sie am Ende große Mengen an binären Differentialen anhäufen. Es gibt auch Dinge wie SSH-Schlüssel, die oft besser verloren gehen als dupliziert werden.

Wenn Sie Berechtigungen verfolgen möchten (außer dem ausführbaren Bit, das Git bereits verfolgt), gibt es anscheinend einen Hook , der dies tut. Es wird in diesem Serverfehler-Thread erwähnt .

intuitiv
quelle
Sie haben meinen Anwendungsfall verstanden: Tatsächlich bin ich daran interessiert, Skripte und Konfigurationen zu versionieren. Ich werde mit diesem grundlegenden Ansatz gehen.
Francesco
Zu Ihrer Information: Das Problem, auf das ich heutzutage stoße, ist, dass ich mein .vim-Verzeichnis nicht verzweigen möchte, wenn ich an neuen Komponenten arbeite. Ich denke über eine Reihe verschiedener Ansätze nach: Ich werde es wahrscheinlich in ein separates Modul aufteilen filter-branchund einen 'work in progress'-Klon davon in einem Unterverzeichnis von ~ einrichten. Dies scheint eine allgemein nützliche Strategie zu sein: Ich gehe davon aus, dass es ähnlich nützlich sein wird, mein gesamtes Home-Dir-Repo zu klonen und dann Skripte zu testen, nachdem $ HOME in das Klonverzeichnis gesetzt wurde. Ich bin mir nicht sicher, wie allgemein anerkannt diese Umgebungsvariable ist, aber ich werde sehen.
Intuitiert
0

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

Edgester
quelle