Есть ли у git для deploy какие-то явные преимущества перед отправкой .tar.gz?

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

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

Чем больше я думаю об этом, тем больше мне кажется, что простое создание сценария создания и отправки архива проще и «более статично», чем зависимость от git для deploy.

Основные факторы, которые позволяют мне отдавать предпочтение простому архиву:

  • В месте назначения не нужно устанавливать git или другие инструменты
  • Мне не нужно устанавливать какие-либо специальные ключи для проверки зависимостей в месте назначения
  • При использовании git развернутый репозиторий всегда будет больше, чем фактически развернутый код
  • У меня будет на один репозиторий меньше мерзавцев, чтобы они оставались последовательными
  • В моем конкретном случае у меня также есть зависимости, которые создаются или извлекаются за пределами git-репозитория (composer, bower, grunt)
  • Я могу выбрать набор файлов для развертывания, а не всю ветку / тег
  • Подготовленный пакет — полностью рабочий дистрибутив моего сайта, почти как бинарный

Дальнейшее чтение:

3

Решение

Есть два разных способа сделать это. Один из них заключается в том, чтобы на самом деле клонировать репозиторий git на сервер и выполнять операции из командной строки на сервере. Во-вторых, использовать такой инструмент развертывания, как http://dploy.io/ какие (и) ftp файлы из репо на сервер.

В обоих случаях я извлекаю из репозитория .gitignore все, что установлено через (composer, bower, grunt), и делаю это из командной строки на сервере вручную, когда это необходимо. Я удовлетворен рабочим процессом обоих методов и использую тот, который больше подходит для развертываемого сервера и группы, которая должна будет выполнить будущие развертывания.

2

Другие решения

Основное различие между этими двумя подходами (помимо наличия Git на рабочем сервере) заключается в количестве файлов, которые должны передаваться по сети: чем меньше файлов вы должны передать, тем меньше подвержен ошибкам весь процесс.

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

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

2

По вопросам рекламы [email protected]