Ответы:
Некоторые инструменты, недавно добавленные в вики Git :
git-ftp от Рене Мозера - это простой сценарий оболочки для работы с FTP в стиле Git. Используйте git-ftp.sh для загрузки на FTP-сервер только файлов, отслеживаемых Git, которые изменились с момента последней загрузки. Это экономит время и пропускную способность. Даже если вы играете с разными ветками, git-ftp.sh знает, какие файлы разные. Ни один обычный FTP-клиент не может этого сделать.
git-ftp от Эдварда З. Янга - это простой скрипт, написанный на python для загрузки файлов в репозиторий Git через FTP, только для передачи новых файлов и удаления старых файлов.
Если вы предпочитаете графический интерфейс, используйте SourceTree, вы можете легко настроить настраиваемое действие, которое использует git-ftp, упомянутый выше. Краткое описание установки (для Mac) на странице «Отправка репозитория Git на FTP».
Я нашел PHPloy отличным инструментом для отправки ваших коммитов Git на удаленные серверы через FTP. Он работает из командной строки и написан на PHP (и даже обнаруживает изменения в подмодулях).
https://github.com/banago/PHPloy
git commit ...
phploy -s staging
phploy -s production
Готово!
(Отказ от ответственности: после некоторого использования я внес несколько исправлений и улучшений кода, сделав его совместимым с Windows.)
Если вы используете Mac и у вас есть Transmit, я бы порекомендовал следующий скрипт git-tranmit ( https://gist.github.com/379750 ). Он использует DockSend для отправки только последних обновленных файлов. Если вы не знакомы с DockSend, посетите http://www.panic.com/blog/2010/11/15-secrets-of-transmit/ .
Настроить:
Строго говоря, git не для этого. Однако, если ваш источник - это то, что не требует компиляции или обработки, скажем, веб-сайт, полностью состоящий из файлов html и javascript и т.п., вы можете иметь клон репо на своем веб-сервере и использовать его git pull
с сервера, чтобы поддерживать его. -назначить свидание. Обратите внимание, я бы настроил ваш веб-сервер, чтобы скрыть каталог git и тому подобное. И это только начало проблем безопасности.
Если у вас есть какая-либо компиляция или обработка, вам следует начать смотреть на Ant , Maven , BuildR , SBT и т. Д.
Вы можете использовать Deployhq.com, он работает как шарм, единственное, что вам нужно сделать, это настроить свой репозиторий и учетную запись FTP.
На данный момент это следующие системы контроля версий:
Git, Subversion, Mercurial.
С размещенным репозиторием
Это сценарий на PHP для почти автоматической загрузки git-diff на FTP-сервер:
Бесплатно для одного проекта и работает очень хорошо.
Здесь есть сценарий Ruby - Ruby git-deploy через FTP или SSH, который загружает только измененные файлы в репозиторий git через FTP или SSH.
Как упоминалось в другом ответе, вот сценарий Python git-ftp.py, который делает то же самое.
А вот версия сценария оболочки git-ftp .
Существует также проект драгоценного камня Ruby под названием git-deploy, который позволяет настраивать настраиваемое развертывание через пульт git с помощью git push
команды, так же, как службы Heroku и Azure. Для этого вам может потребоваться написать собственные методы для развертывания через 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 'index.txt' не соответствует ни одному файлу (файлам), известным git . Это означает, что файл еще не был подготовлен, поэтому добавьте файл и попробуйте зафиксировать.
git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
Надеюсь это поможет.
Вы можете попробовать FTPloy ...
«Отправьте изменения на GitHub или Bitbucket».
"Автоматическое развертывание изменений на вашем сервере"
У вас есть один бесплатный проект, над которым вы можете попробовать. В настоящее время я использую для небольшого веб-сайта php, и он работает довольно хорошо. На сайте есть несколько ошибок, но это активный проект, так что, по крайней мере, они над ним работают.
Посетите https://gitftp-deploy.com/, если вы используете MacOS и вам нравятся графические интерфейсы.
Это симпатичное маленькое приложение, которое использует Git для отслеживания изменений и загрузки только измененных файлов через FTP.
Особенно удобно, если вам не нравится платить ежемесячную плату за десятки небольших проектов с небольшими командами.