J'utilise donc Git principalement à des fins de développement, mais je viens de réaliser que je pouvais l'utiliser pour stocker des versions des fichiers de paramètres que j'ai sur mon installation Ubuntu.
Ma configuration proposée est la suivante:
git init
un repo à/
Ajouter un
.gitignore
at/
qui ignore tous les fichiers, à l'exception des paramètres spécifiques que je souhaite suivre.Par exemple, le
.gitignore
pourrait contenir ( source ):## Ignore everything... * ## Except... !/etc/default/tlp !/etc/crontab
Chaque fois que je modifie ces paramètres de bas niveau, je peux les suivre.
Y a-t-il quelque chose qui pourrait mal tourner avec cette configuration? Le noyau doit-il toujours avoir /
uniquement certains dossiers? Cela gâchera-t-il le fonctionnement des applications?
~
fichiers de paramètres de répertoire personnel plutôt que les/
fichiers/etc/crontab
sur mon portable personnel sont définitivement les miens, mais je vois ce que tu veux dire.etckeeper
et faites des sauvegardes.Réponses:
La réponse à vos deux questions est non, vous pouvez créer le répertoire de votre choix dans le
/
. la seule chose qui pourrait arriver est quelques problèmes d'autorisation avec certains chemins spatiaux je suppose.Cependant, il est préférable de stocker le
.git
répertoire ailleurs, quelque chose ressemble à:Lisez ici .
la source
En fait, vous souhaitez probablement contrôler les versions des fichiers de configuration dans
/etc/
(vous ne vous souciez pas des entrées du répertoire racine/
, notamment des répertoires commeproc
ouusr
oubin
dans/
), vous pouvez donc installer leetckeeper
packageEt vous pouvez également contrôler la version de certains sous-répertoires sélectionnés (comme
/usr/share/applications/
celui que vous avez mentionné).Cependant, ne plaisante pas avec le système de gestion de paquets Ubuntu . Vous devriez peut-être surtout sauvegarder la liste actuelle des packages installés.
la source
/usr/share/applications
car je m'amuse parfois avec eux.Avoir un dépôt git dans / fonctionne très bien, sauf qu'il est difficile de remarquer quand vous avez un dépôt git de niveau inférieur avec des problèmes car il répondra à tous.
Remarque: il est moins fastidieux et probablement plus utile d'utiliser des «debsums»
Ce qui vous permettra de détecter rapidement (la plupart) des changements dans les binaires ou dans les fichiers de configuration.
À titre d'exemple des packages installés, voici ceux qui diffèrent des packages en amont.
Et vous pouvez obtenir une liste des fichiers de configuration modifiés avec:
Notez comment le navigateur chrome est mal empaqueté et a un fichier répertorié dans la liste des fichiers de package qui n'existe pas.
Cela utilise les données dpkg et évite un grand répertoire /.git et un workflow.
la source
/home/$USER
alors.git
en/
répondra à toute commande git donnée pour le repo/home$USER
plutôt que pour que [.gir
fichier] dans/home/$USER
....git
répertoire plus haut dans l'arborescence, il vous suffitcd
d'y accéder , ou à un sous-répertoire de celui-ci qui ne possède pas de.git
dossier (un répertoire normal qui l'est)J'ai donc exploré les autres réponses et j'ai trouvé une procédure qui fonctionne pour moi:
Faites un
.gitignore
at/
. C'était beaucoup plus compliqué que je ne le pensais, en raison de la façon dont Git gère les fichiers de liste blanche dans les sous-dossiers. J'ai utilisé ceci et ce lien pour m'aider.Allez
/
et exécutezgit init .
Jusqu'à présent, je n'ai pas pu stocker le.git/
dossier dans un autre répertoire en utilisant le lien mentionné par @Ravexina .Exécutez
git add .
etgit status
. Vous devriez obtenir une liste de tous les fichiers de paramètres que Git suit.Engagez-vous avec
git commit -m "Initial settings files"
.Vous pouvez suivre les modifications avec
git log -p -- path/to/file
ougitk path/to/file
. Plus de discussion à ce sujet ici .la source
Si vous allez stocker des choses sensibles (comme
/etc/shadow
) dans le dépôt git, vous devez vous assurer qu'elles ne sont pas lisibles par tous les utilisateurs, car par défaut les objets auront l'autorisation444
et les répertoires auront l'autorisation0755
. Vous pouvez modifier l'autorisation.git
pour700
ou le mettre dans/root
Un autre problème est que git ne stocke pas les autorisations de fichiers comme le système de fichiers et ne stocke pas les attributs étendus. Pour les fichiers, git stocke uniquement s'ils sont exécutables. Donc, si vous souhaitez restaurer un fichier supprimé, son propriétaire et son groupe seront root (si vous le faites en tant que root), et son autorisation sera
644
ou755
. Cela peut être problématique pour les fichiers de configuration des services dont le propriétaire n'est pas root.la source