Поэтому я использую Git в основном для целей разработки, но я только что понял, что могу использовать его для хранения версий файлов настроек, которые у меня есть при установке Ubuntu.
Моя предлагаемая установка:
git init
репо в/
Добавить
.gitignore
при/
этом игнорирует любые файлы, кроме определенных настроек, которые я хочу отслеживать.Например,
.gitignore
может содержать ( источник ):## Ignore everything... * ## Except... !/etc/default/tlp !/etc/crontab
Всякий раз, когда я изменяю эти настройки низкого уровня, я могу отслеживать их.
Что-нибудь может пойти не так с этой настройкой? Всегда ли ядру нужно /
иметь только определенные папки? Это испортит работу каких-либо приложений?
~
файлы настроек вашего домашнего каталога, а не/
файлы/etc/crontab
моего личного ноутбука, безусловно, мое, но я понимаю, что вы имеете в виду.etckeeper
и делайте резервные копии.Ответы:
Ответ на оба ваших вопроса - нет, вы можете создать любой каталог, который хотите в
/
. единственное, что может случиться, это некоторые проблемы с разрешениями с некоторыми пространственными путями, я думаю.Однако лучше хранить
.git
каталог в другом месте, что-то похожее на:Читайте здесь .
источник
На самом деле, вы , вероятно , хотите файлы конфигурации управления версиями в
/etc/
(вы не заботитесь о записях в корневом каталоге/
, в частности каталогов , например ,proc
или ,usr
илиbin
в/
) , так что вы можете установитьetckeeper
пакетИ вы также можете управлять версиями некоторых выбранных подкаталогов (как
/usr/share/applications/
вы упомянули).Однако не связывайтесь с системой управления пакетами Ubuntu . Возможно, вам в основном следует сделать резервную копию текущего списка установленных пакетов.
источник
/usr/share/applications
потому что время от времени возиться с ними.Наличие git-репо в / работает нормально, за исключением того, что трудно заметить, когда у вас есть git-репо более низкого уровня с проблемами, поскольку он ответит на все из них.
Примечание: это менее трудоемко и, вероятно, более полезно использовать «дебсум»
Что позволит вам быстро обнаружить (большинство) изменений в двоичных файлах или в файлах конфигурации.
В качестве примера из установленных пакетов здесь приведены те, которые отличаются от исходящих пакетов.
И вы можете получить список измененных файлов конфигурации с:
Обратите внимание, что браузер chromium неправильно упакован и содержит файл, который отсутствует в списке файлов пакета.
Это использует данные dpkg и позволяет избежать большого каталога /.git и рабочего процесса.
источник
/home/$USER
тогда.git
in/
будет отвечать за любую команду git, переданную для репо,/home$USER
а не для этого [.gir
файла] в/home/$USER
....git
каталогу выше в дереве, вы простоcd
к нему или его подкаталогу, у которого нет.git
папки (нормальный каталог, который есть)Поэтому я изучал другие ответы и нашел процедуру, которая работает для меня:
Сделать
.gitignore
в/
. Это было намного сложнее, чем я думал, из-за способа, которым Git обрабатывает файлы из белого списка в подпапках. Я использовал эту и эту ссылку, чтобы помочь мне.Перейдите
/
и запустите.git init .
Пока я не смог сохранить.git/
папку в другом каталоге, используя ссылку, указанную @Ravexina .Беги
git add .
иgit status
. Вы должны получить список всех файлов настроек, которые отслеживает Git.Совершить с
git commit -m "Initial settings files"
.Вы можете отслеживать изменения с помощью
git log -p -- path/to/file
илиgitk path/to/file
. Подробнее об этом здесь .источник
Если вы собираетесь хранить конфиденциальные данные (например
/etc/shadow
) в репозитории git, вы должны убедиться, что они недоступны для чтения всем пользователям, поскольку по умолчанию объекты будут иметь разрешение,444
а каталоги - разрешение0755
. Вы можете изменить разрешение.git
на700
или положить его в/root
Другая проблема заключается в том, что git не хранит права доступа к файлам, такие как файловая система, и не хранит расширенные атрибуты. Для файлов git хранит только исполняемые файлы. Поэтому, если вы хотите восстановить удаленный файл, его владелец и группа будут root (если вы сделаете это как root), а его разрешение будет
644
или755
. Это может быть проблематично для файлов конфигурации служб, владельцем которых не является root.источник