Git Push в производство (FTP)
Я хотел бы знать, есть ли простой способ запустить репозиторий GIT в производство (на FTP-сервере) ? Спасибо
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
Если вы находитесь на mac и имеете передачу, я бы рекомендовал следующий скрипт git-tranmit (https://gist.github.com/379750). он использует DockSend для отправки только последних обновленных файлов. Если вы не знакомы с DockSend, проверьте http://www.panic.com/blog/2010/11/15-secrets-of-transmit/.
Setup:
- cp git-transit/usr/sbin/.
- cd / usr / sbin
- chmod +x ГИТ-передачи
- установка падение отправить для вашего живого приложения
- запустите 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 и т. д.
вы можете попробовать FTPloy ...
" нажмите изменения в GitHub или Bitbucket."
"автоматическое развертывание изменений на сервере"
У вас есть один свободный проект, чтобы попробовать его. В настоящее время я использую для небольшого веб-сайта php, и он работает довольно хорошо. Несколько ошибок на сайте, но это активный проект, поэтому, по крайней мере, они работают над ним.
здесь есть рубиновый скрипт -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"
надеюсь, что это помогает.