Как настроить git на собственном сервере и заменить им работу по sftp?
Всем привет!
Работаю с сервером по sftp, в IDE изменил файл, нажал ctrl+s, файл отправился на сервер.
Хочу иметь историю изменений файлов.
Можно ли сделать примерно следующее?
Допустим такая структура на сервере
/var/www/site.ru/git - тут репозиторий
/var/www/site.ru/www - тут сайт
Создаю пользователя типа git-user с оболочкой /bin/git и доступом к репозиторию, чтобы можно было по ssh подключиться, но выполнять только git команды.
В IDE нажимаю strl+s, изменения отправляются на сервер, схватываются git'ом, а после этого git измененные файлы отправляет в папку www.
Да можно. У меня например все по ssh настроено. Создаете на сервере группу gitusers, в нее включаете пользователей, которым нужно дать доступ. Создаете каталог, например /opt/git , там создаете свои репозитории и устанавливаете разрашение для данной группы на чтение/запись.
Вот здесь все подробно описано - https://raymii.org/s/tutorials/Shared_Git_reposito...
Репозиторий не должен находиться на том же сервере, что и само приложение, историю изменений лучше держать отдельно. Самый простой способ - сделать git init на локальном рабочем месте, коммитить там же, а на сервер заливать по старинке через sftp (причём желательно всегда полностью удаляя и перезатирая файлы).
Если не хочется, чтобы исходники с историей были только на локальной машине - их можно синхронизировать куда-нибудь наружу на сервисы типа github, gitlab, bitbucket.
Вы можете начать пользоваться git и при этом продолжать заливать файлы по ftp.
Установите расширение https://github.com/git-ftp/git-ftp и вы сможете push'ить свои изменения через ftp. Копироваться будут только измененные файлы.
Установка и использование тривиальны: https://habr.com/post/178067/
Только имейте в виду, что на сервере не будет полноценного git-репозитория - только файлы, поэтому если у вас накроется локальный, то клонировать будет неоткуда.