Git Push в производство (FTP) - PullRequest
128 голосов
/ 01 июня 2010

Хотелось бы узнать, есть ли простой способ запустить GIT-репозиторий в производство (на FTP-сервере)? Спасибо

Ответы [ 14 ]

157 голосов
/ 01 июня 2010

Некоторые инструменты, недавно добавленные в Git wiki :

git-ftp от René Moser - это просто скрипт для работы с FTP путь. Используйте git-ftp.sh для загрузки только Git отслеживает файлы на FTP-сервер, которые изменились с прошлого загрузить. Это экономит время и пропускную способность. Даже если вы играете с разными ветки, git-ftp.sh знает какие файлы разные. Нет обычного FTP-клиента могу сделать это.

git-ftp от Edward Z. Ян - это простой скрипт, написанный на Python для загрузка файлов в репозиторий Git через FTP, только передача новых файлов и удаление старых файлов.

14 голосов
/ 19 июня 2013

Если вы предпочитаете GUI, используйте SourceTree, вы можете легко настроить Custom Action, использующий упомянутый выше git-ftp. Краткое описание настройки (для Mac) на Push-репозиторий Git на FTP

enter image description here

11 голосов
/ 11 апреля 2014

Я нашел PHPloy отличный инструмент для отправки ваших коммитов Git на удаленные серверы по FTP. Он работает из командной строки и написан на PHP (и даже обнаруживает изменения в подмодулях).

https://github.com/banago/PHPloy

git commit ...
phploy -s staging
phploy -s production

Готово!

(Отказ от ответственности: после некоторого использования я теперь внес несколько исправлений и улучшений кода, сделав его совместимым с Windows.)

10 голосов
/ 18 августа 2011

Если вы используете Mac и используете Transmit, я бы порекомендовал следующий скрипт git-tranmit (https://gist.github.com/379750).. Он использует DockSend для отправки только последних обновленных файлов. Если вы не знакомы с DockSend проверить http://www.panic.com/blog/2010/11/15-secrets-of-transmit/.

Настройка:

  1. cp git-transport /usr/sbin/.
  2. cd / usr / sbin
  3. chmod + x git-forward
  4. Настройка drop send для вашего живого приложения
  5. Запустите Git-Transmit в вашем Git-хранилище.
5 голосов
/ 01 июня 2010

Строго говоря, это не то, для чего нужен git. Однако, если ваш источник не требует компиляции или обработки, скажем, веб-сайт, состоящий из полностью файлов html и javascript и т. П., Вы можете иметь клон репозитория на своем веб-сервере и использовать git pull с сервера, чтобы поддерживать его в актуальном состоянии. Обратите внимание, я бы настроил ваш веб-сервер, чтобы скрыть каталог git и тому подобное. И это только начало проблем безопасности.

Если у вас есть какой-либо вид компиляции или обработки, вы должны начать смотреть на Ant , Maven , BuildR , SBT и т.д.

3 голосов
/ 31 октября 2012

Это скрипт в PHP для почти автоматической загрузки git-diff на FTP-сервер:

http://code.google.com/p/upload-git-diff-with-ftp/

2 голосов
/ 26 августа 2016

https://www.deployhq.com/

Бесплатно для одного проекта и работает очень хорошо.

2 голосов
/ 22 августа 2016

Вы можете попробовать FTPloy ...

https://ftploy.com

«Нажмите изменения в GitHub или Bitbucket.»

«Автоматическое развертывание изменений на вашем сервере»

У вас есть один бесплатный проект, чтобы опробовать его. Я в настоящее время использую для небольшого php-сайта, и он работает довольно хорошо. Несколько ошибок на сайте, но это активный проект, так что, по крайней мере, они работают над ним.

1 голос
/ 12 ноября 2018

Вы можете использовать Deployhq.com он работает как чудо, единственное, что вам нужно сделать, это настроить свой репозиторий и учетную запись FTP.

В настоящее время используются следующие системы контроля версий:

Git, Subversion, Mercurial.

С репозиторием

  • GitHub
  • Bitbucket
  • GitLab
  • Codebase

enter image description here

1 голос
/ 13 июня 2012

Здесь есть скрипт Ruby - Ruby git-deploy через FTP или SSH , который загружает только измененные файлы в git-репо через FTP или SSH.

Как уже упоминалось в другом ответе, здесь есть скрипт Python git-ftp.py , который выполняет аналогичные действия.

А вот версия сценария оболочки git-ftp .

Существует также проект Ruby gem под названием git-deploy , который позволяет настраивать пользовательское развертывание с помощью удаленного git с помощью команды git push, так же, как службы Heroku и Azure. Для этого вам может понадобиться написать собственные методы для развертывания через FTP, и я думаю, что предполагается, что у вас есть SSH-доступ к вашему производственному серверу.

...