Этот вопрос направлен на то, чтобы выделить фактические различия между двумя подходами к развертыванию, а не субъективно. Просмотрите список в конце для конкретных понятий.
В настоящее время я смотрю на варианты развертывания моего приложения, где бы оно ни создавалось. Я много читал о и знаю, как git иногда используется для развертывания. Я также видел, как вы можете просто создать tar.gz из желаемых файлов и затем отправить его на сервер.
Чем больше я думаю об этом, тем больше мне кажется, что простое создание сценария создания и отправки архива проще и «более статично», чем зависимость от git для deploy.
Основные факторы, которые позволяют мне отдавать предпочтение простому архиву:
Дальнейшее чтение:
Есть два разных способа сделать это. Один из них заключается в том, чтобы на самом деле клонировать репозиторий git на сервер и выполнять операции из командной строки на сервере. Во-вторых, использовать такой инструмент развертывания, как http://dploy.io/ какие (и) ftp файлы из репо на сервер.
В обоих случаях я извлекаю из репозитория .gitignore все, что установлено через (composer, bower, grunt), и делаю это из командной строки на сервере вручную, когда это необходимо. Я удовлетворен рабочим процессом обоих методов и использую тот, который больше подходит для развертываемого сервера и группы, которая должна будет выполнить будущие развертывания.
Основное различие между этими двумя подходами (помимо наличия Git на рабочем сервере) заключается в количестве файлов, которые должны передаваться по сети: чем меньше файлов вы должны передать, тем меньше подвержен ошибкам весь процесс.
Вот почему я предпочитаю использовать git archive
чтобы сгенерировать требуемый tar-файл (архив указанного формата, содержащий древовидную структуру для именованного дерева).
Таким образом, мне нужно только передать один файл как обычный архив, и мне не нужен Git на другой стороне.