Git Ввод в производство (FTP)

Я хотел бы знать, есть ли простой способ вытеснить репозиторий GIT в производство (на FTP-сервере)? Благодаря

Ответ 1

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

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

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

Ответ 2

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

enter image description here

Ответ 3

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

Настройка:

  • cp git -transit/usr/sbin/.
  • cd/usr/sbin
  • chmod + x git -transmit
  • Отправка настройки отправки для вашего живого приложения.
  • Запустите git -передатчик в репозитории git.

Ответ 4

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

https://github.com/banago/PHPloy

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

Готово!

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

Ответ 5

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

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

Ответ 7

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

https://ftploy.com

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

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

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

Ответ 8

https://www.deployhq.com/

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

Ответ 9

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

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

И вот оболочка script версия git-ftp.

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

Ответ 10

Если вы вводите код в производство, я рекомендую использовать "установщик", такой как пакет RPM, для установки вашего кода. Таким образом, это будет печать с версией, и вы сможете использовать пакет установщика для поддержки обновлений производственного кода. Git не предназначен для поддержки производственных установок, он предназначен для отслеживания изменений самого кода.

В любом случае, с созданным .RPM(или EXE или любым другим), вы можете просто перенести его в производственную систему и установить как любой другой пакет.

Ответ 11

Добавьте его как удаленный, затем вы можете нажать на него, однако простого нажатия кода недостаточно, его необходимо объединить с рабочим деревом. Самый простой способ - идти в другую сторону, иметь рабочее дерево на сервере и извлекать и сливаться с этим.

Ответ 13

Я много искал, чтобы понять это. Я выяснил простой способ сделать это из разных источников (git -ftpINSTALL, git -ftpUPLOAD, git -ftpIssue, git -ftpPUSH). Вы можете прочитать для справки, но нет необходимости, потому что я упомянул поэтапный процесс ниже.

Прежде всего: установите git и закручивайте, используя brew в ОС MAC

brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp

Выполните следующие команды:

git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

Обновление с помощью git

git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

Настройка

git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword

Загрузить все файлы

git ftp init

Или, если файлы уже есть

git ftp catchup

Работа и развертывание

echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push

Если существует ошибка : pathspec 'index.txt' не соответствует ни одному файлу, известному как git. Это означает, что файл еще не был поставлен, поэтому добавьте файл, а затем попытайтесь выполнить фиксацию.

git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"

Надеюсь, это поможет.