Я хочу к управлению версиями свой веб-сервер, как описано в Управлении версиями для моего веб-сервера путем создания мерзавца repo из моего /var/www directory
. Моя надежда состояла в том, что я затем смогу продвинуть веб-контент от нашего dev сервера до GitHub, вытяните его к нашему рабочему серверу и потратьте остальную часть дня в пуле.
По-видимому, петля в моем плане - то, что Мерзавец не будет уважать полномочия файла (я не попробовал его, только читая об этом теперь.) Я предполагаю, что это имеет смысл в этом, различные поля склонны иметь различные установки пользователя/группы. Но если я хотел вызвать полномочия распространить, зная, что мои серверы настроены то же, у меня есть какие-либо опции? Или существует ли более легкий способ приблизиться к тому, что я пытаюсь сделать?
git-cache-meta
, упомянутый в вопросе SO « git - как восстановить права доступа к файлу, по мнению git, файл должен быть? » (и git FAQ ) - более прямолинейный подход.
Идея состоит в том, чтобы сохранить в файле .git_cache_meta
права доступа к файлам и каталогам.
Это отдельный файл, версия которого не контролируется непосредственно в репозитории Git.
Вот почему его используют:
$ git bundle create mybundle.bdl master; git-cache-meta --store
$ scp mybundle.bdl .git_cache_meta machine2:
#then on machine2:
$ git init; git pull mybundle.bdl master; git-cache-meta --apply
Итак, вы:
Git - это система контроля версий, созданная для разработки программного обеспечения, поэтому из всего набора режимов и разрешений она хранит только исполняемый бит (для обычных файлов) и бит символической ссылки. Если вы хотите сохранить полные разрешения, вам понадобится сторонний инструмент, например git-cache-meta
(, упомянутый VonC ), или Metastore (используется etckeeper ). Или вы можете использовать IsiSetup , который IIRC использует git как бэкэнд.
См. Страницу Интерфейсы, внешние интерфейсы и инструменты на Git Wiki.