Назад | Перейти на главную страницу

Могу ли я заставить git извлекать рабочую копию только из удаленного репозитория?

Как системный администратор я хотел бы иметь возможность написать автоматизированный процесс установки на производственный сервер, который:

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

Есть способ сделать это? По крайней мере, с помощью CVS можно получить рабочую копию модуля с заданным тегом без необходимости извлекать копию всего репозитория.

Это основное различие между централизованной VCS (например, CVS) и DVCS (Distributed): вы всегда клонируете все содержание репо, даже если вы можете выполнить мелкий клон, так как Олипро упоминает.

  • В CVCS вы можете поместить все, а получить bacj - только его часть.
  • В DVCS репозиторий рассматривается как глобальный и согласованный набор файлов, которыми вы всегда управляете как единое целое.

Создание поверхностного клона только одной ветви возможно, но сложно: см. "Частичное клонирование с помощью Git и Mercurial".

Но я рекомендую не использовать Git в качестве инструмента управления выпусками / развертывания: "Как неглубоко клонировать одну ветку в git?".

Я бы предпочел пойти с git archive чтобы заархивировать нужную ветку / версию, а затем скопировать ее на соответствующий сервер.

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