Как контролировать разложенные файлы без замены оригиналов? - PullRequest
1 голос
/ 04 октября 2011

Я хочу хранить пару файлов в разных каталогах под контролем версий с помощью git.Некоторые из них находятся в моем домашнем каталоге, а некоторые - в /etc, и я, очевидно, не хочу превращать корень в репозиторий git.

Этого можно достичь, поместив все файлы в одну папку и ссылки вожидаемые местоположения, например /etc/resolv.conf -> /home/tim/my-repo/etc-resolv.conf, но не нужно менять столько систему, сколько нужно для программного обеспечения контроля версий.

Как управлять версиями файлов без замены оригиналов ссылками?

Ответы [ 6 ]

1 голос
/ 05 октября 2011

Вся идея git основана на предположении, что у вас есть один каталог, который вы хотите контролировать под управлением версиями.

Одним из возможных решений было бы использование всей файловой системы под управлением git, но используйте .gitignoreисключить что-либо, за некоторыми исключениями.

1 голос
/ 05 октября 2011

Похоже, что вам действительно нужно хорошее решение для резервного копирования.Git не очень хорошо справляется с такими атрибутами файлов, как владелец, группа, права доступа, контексты безопасности SELinux.Когда вы начнете управлять системными файлами с помощью Git, все может сложиться.

Я бы упростил задачу и использовал обычные утилиты резервного копирования, такие как rsync, cpio, tar и cron с подходящимиполитика резервного копирования.

0 голосов
/ 08 января 2019

Просто наткнулся на этот вопрос, потому что у меня такая же проблема. Я хотел бы контролировать некоторые версии, но не все файлы конфигурации системы и некоторые сценарии в разных разрозненных каталогах.

Я нашел две функции git, которые могут помочь здесь:

Вы можете заменить каталог .git файлом, указывающим на настоящий каталог git. Таким образом, вы можете поместить каталог .git в выбранное место и по-прежнему иметь глобальный git, если вы поместите файл .git в /.

Формат файла .git:

gitdir: /path/to/your/.git

Второе - это простое глобальное исключение. Просто добавьте глобальный подстановочный знак (*) в файл / info / exclude. Это исключает все файлы по умолчанию. Чтобы отследить файл, вы должны явно включить его с помощью 'git add -f'.

0 голосов
/ 05 октября 2011

Git лучше всего подходит для управления исходным кодом в некотором общем каталоге проекта, а не в отдельных файлах в разрозненных каталогах.

Может быть возможно что-то выдумать с помощью небольшого количества кода, например, ловушка фиксации, которая читает список файлов, которые она затем зафиксировала, но сделать изменения в этих удаленных файлах с помощью git 'note' было бы сложно ;-)

0 голосов
/ 04 октября 2011

делает каждый каталог git-репо, затем проталкивает через разные имена филиалов в общий репо.

надеюсь, это поможет.

0 голосов
/ 04 октября 2011

Я не думаю, что есть альтернатива ссылкам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...