git-ftp Настройка -- Как загружать изменения на хостинг через FTP (GitFTP) - Windows

git ftp -s test push

Что происходит

В данной заметке рассматривается использование скриптов git-ftp для загрузки изменений из локального git-репозитория на FTP-хостинг.

Программные средства

Для заливки же кода через FTP, будем использовать набор скриптов git-ftp (https://github.com/git-ftp/git-ftp) - за который спасибо программисту René Moser-у.
Данную штуковину можно считать элементарным средством для деплоя на удалённый сервер.

Установка

Рассмотри уcтановку:

Настройка параметров FTP-сервера

Переходим в папку репозитория (теперь уже вашего проекта, изменения в котором будем загружать на удаленный сервер с помощью git ftp), и открываем папку .git, в которой есть файл config:

.git/config

-- открываем его редактором и добавляем туда реквизиты доступа к вашему FTP-серверу, например такие:

[git-ftp "test"]
     user = df836as
     url = "92.51.92.51/spec/public_html"
     password = dfgd34rg34g

После чего файл будет выглядеть как-то так:

[core]
	bare = false
	repositoryformatversion = 0
	filemode = false
	symlinks = false
	ignorecase = true
	logallrefupdates = true
[git-ftp "test"]
     user = df836as
     url = "92.51.92.51/spec/public_html"
     password = dfgd34rg34g

Что есть что:

  1. test - условное название нашего ftp сервера,
  2. далее указано имя пользователя FTP
  3. затем указывается путь к директории проекта (в ней не обязательно должна быть папка .git - более того на сервер её лучше не закидывать , работать можно с обычным набором файлов, но .git обязательно должна быть в наборе файлов на машине с которой вы будете заливать изменения на FTP сервер), который начинается с доменного имени или ip-адреса сервера, а дальше всё зависит от того к какой именно директории дан доступ пользователю (в данном случае df836as имеет доступ к корню в котором есть папка spec, а уже в ней папка public_html, куда и подразумевается заливать проект и/или изменения).
  4. Последний параметр - пароль для пользователя, указанного выше (у нас - для df836as).

Далее, после того как мы настроили параметры сервера переходим в папку с репозиторием (в том же Git Bash), например:

cd /D/www/spec.local

Ну и начинаем работать уже с git-ftp.

Работа с git-ftp

Чтобы загрузить весь проект на хостинг (первый раз) выполните:

git ftp -s test init

Если же проект уже загружен (актуальные версии файлов уже на сайте), то выполните:

git ftp -s test catchup

После этого (загрузки всего репозитория или отметки о том, что он уже в актуальном состоянии) выгружаться будут только новые изменения, что (после выполнения коммита) можно сделать командой:

git ftp -s test push

А если подробно (с коммитом из командной строки - 3 команды):

$ git add .
$ git commit -m "Commit name"
$ git ftp -s test push

Если что-то не получается, то чтобы узнать причину ошибки используйте флаг -v, например:

git ftp -s test catchup -v

ПРИМЕЧАНИЕ: на старых версиях возможна такая проблема, лучше сразу обновить Git for Windows.

Несколько серверов

Можно указать и несколько FTP серверов для git-ftp, например (пример содержимого .git/config):

[core]
	bare = false
	repositoryformatversion = 0
	filemode = false
	symlinks = false
	ignorecase = true
	logallrefupdates = true
[git-ftp "test"]
     user = df836as
     url = "92.51.92.51/spec/public_html"
     password = dfgd34rg34g
[git-ftp "prod"]
     user = b4407539_qwe
     url = "free.get.com/"
     password = df333Grg34g

Тогда для загрузки на указанный сервер prod новых изменений, соответственно, выполняем:

 git ftp -s prod push

Вот и всё) Удачи в использовании)

Источники:

  1. Git FTP на примере в Windows: https://m.habrahabr.ru/post/178067/
  2. и хотя это копия, но оформление было приятным (читал именно в этой версии): http://security-corp.org/os/windows/1182...