Я использую git для развертывания веб-сайта. Веб-сервер содержит голый репозиторий (концентратор) и клонированный репозиторий с проверенным рабочим деревом (которое является фактически работающим сайтом). Я работаю локально и отправляю данные в хаб, а хук после получения в хабе отправляет изменения в репозиторий.
На сайте есть огромный архив с кучей PDF-файлов (несколько гигов). В настоящее время они не управляются с помощью git, а вместо этого синхронизируются с помощью других инструментов, которые, к сожалению, не работают должным образом. Я хотел бы управлять всем с помощью git, но из-за нехватки места я хочу, чтобы файлы существовали только в рабочих деревьях, а не в репозитории git (что удвоит требуемый размер локально и утроит его на веб-сервере как объекты в обоих репозиторий концентратора и репозиторий живого сайта). Другими словами, я хочу синхронизировать эти файлы прямо с моего локального компьютера в активное рабочее дерево. Мне не нужно управление версиями этих файлов.
Это возможно? Я пытался заглянуть в git-fat, но при выполнении git fat push он только помещает объекты с именами SHA в один каталог. Я хотел бы синхронизировать всю структуру папок архива PDF, просто не сохраняя сами файлы PDF в фактическом репозитории git (.git/objects).
Я использую Windows локально. Мой веб-сервер работает под управлением Linux. Я не думаю, что у меня есть права на установку чего-либо на сервер.
2 ответа
git-media — это инструмент, который помогает в этой ситуации. Он будет передавать медиа-файлы, используя указанный метод передачи (scp кажется наиболее подходящим в этом случае).
При подготовке файлов файлы будут скопированы во временный буфер, пока вы их не синхронизируете (git media sync). Он синхронизирует их с указанным каталогом, который может быть вашим рабочим деревом на сервере.
Git-media уже упоминался, и другим каноническим ответом является git-annex (http://git-annex. Branchable.com/). В частности, подстраница «чем git-annex не является» (http://git-annex.branchable. com/not/) заслуживает внимания.
.git/objects
.
Похожие вопросы
Новые вопросы
git
Git — это распределенная система контроля версий с открытым исходным кодом (DVCS). Используйте этот тег для вопросов об использовании Git и рабочих процессах. Не используйте этот тег для общих вопросов по программированию, связанных с репозиторием Git. Не используйте этот тег для вопросов GitHub/GitHub Actions, не связанных с использованием git; вместо этого используйте [github] или [github-actions]. Не используйте тег [github] для проблем, связанных с Git, только потому, что репозиторий размещен на GitHub.