Я использую git для развертывания веб-сайта. Веб-сервер содержит голый репозиторий (концентратор) и клонированный репозиторий с проверенным рабочим деревом (которое является фактически работающим сайтом). Я работаю локально и отправляю данные в хаб, а хук после получения в хабе отправляет изменения в репозиторий.

На сайте есть огромный архив с кучей PDF-файлов (несколько гигов). В настоящее время они не управляются с помощью git, а вместо этого синхронизируются с помощью других инструментов, которые, к сожалению, не работают должным образом. Я хотел бы управлять всем с помощью git, но из-за нехватки места я хочу, чтобы файлы существовали только в рабочих деревьях, а не в репозитории git (что удвоит требуемый размер локально и утроит его на веб-сервере как объекты в обоих репозиторий концентратора и репозиторий живого сайта). Другими словами, я хочу синхронизировать эти файлы прямо с моего локального компьютера в активное рабочее дерево. Мне не нужно управление версиями этих файлов.

Это возможно? Я пытался заглянуть в git-fat, но при выполнении git fat push он только помещает объекты с именами SHA в один каталог. Я хотел бы синхронизировать всю структуру папок архива PDF, просто не сохраняя сами файлы PDF в фактическом репозитории git (.git/objects).

Я использую Windows локально. Мой веб-сервер работает под управлением Linux. Я не думаю, что у меня есть права на установку чего-либо на сервер.

0
cmeeren 9 Дек 2014 в 11:26

2 ответа

git-media — это инструмент, который помогает в этой ситуации. Он будет передавать медиа-файлы, используя указанный метод передачи (scp кажется наиболее подходящим в этом случае).

При подготовке файлов файлы будут скопированы во временный буфер, пока вы их не синхронизируете (git media sync). Он синхронизирует их с указанным каталогом, который может быть вашим рабочим деревом на сервере.

0
Ikke 9 Дек 2014 в 11:46
Та же проблема, что и с git-fat. Файлы PDF помещаются только в один указанный мной каталог с именами файлов на основе SHA (без расширений).
 – 
cmeeren
9 Дек 2014 в 12:19

Git-media уже упоминался, и другим каноническим ответом является git-annex (http://git-annex. Branchable.com/). В частности, подстраница «чем git-annex не является» (http://git-annex.branchable. com/not/) заслуживает внимания.

0
pndc 9 Дек 2014 в 13:30
Спасибо, к сожалению, я использую Windows, которая накладывает некоторые ограничения на приложение git (принудительный прямой режим). Я также не уверен, можно ли использовать его для веб-развертывания без установки на веб-сервере (над которым я не контролирую).
 – 
cmeeren
9 Дек 2014 в 14:17
После некоторого тестирования с помощью git-annex я не могу заставить его отражать дерево каталогов. Файлы копируются и сохраняются так же, как и в .git/objects.
 – 
cmeeren
9 Дек 2014 в 15:52