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. 92.51.92.51/spec/public_html -- в вашем случае этот путь может быть иным (зависит от того в какую именно директорию логинится ftp-пользователь - -именно от неё надо писать доп. путь после ip или имени домена.)
  5. Последний параметр - пароль для пользователя, указанного выше (у нас - для df836as).

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

cd /D/www/spec.local

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

Работа с git-ftp

Тут возможны варианты, в зависимости от состояния проекта

    Выгружаем первый раз

  • Чтобы загрузить весь проект на хостинг (первый раз) выполните:
    git ftp -s test init
  • Если проект уже был загружен

  • Если же проект уже загружен (актуальные версии файлов уже на сайте), то выполните:
    git ftp -s test catchup
  • Узнать какой коммит был загружен последним на данный момент:
    git ftp -s test show
  • После загрузки всего репозитория или отметки о том, что он уже в актуальном состоянии (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...