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


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

13 124

13 ответов:

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

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

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

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

enter image description here

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

Setup:

  1. cp git-transit/usr/sbin/.
  2. cd / usr / sbin
  3. chmod +x ГИТ-передачи
  4. установка падение отправить для вашего живого приложения
  5. запустите git-transmit в репозитории git.

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

https://github.com/banago/PHPloy

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

готово!

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

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

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

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

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

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

https://ftploy.com

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

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

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

https://www.deployhq.com/

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

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

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

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

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

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

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

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

вы всегда можете попробовать подключить ftp к локальному каталогу с помощью http://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem.

тогда вы можете использовать его так же, как этой.

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

первое: установите git и curl с помощью brew на MAC OS

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 '.txt' не соответствует ни одному файлу(ам), известному git. Это означает, что файл еще не был поставлен, поэтому добавьте файл, а затем попробуйте совершать.

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

надеюсь, что это помогает.