Использование git для развертывания моего сайта без доступа по SSH

Я отслеживаю изменения моего сайта, используя git. Структура каталогов:

$ ls my-page 
Gruntfile.js     node_modules     webpage      package.json

Конечно, я хотел бы подтолкнуть только webpage содержимое подкаталога на сервер. Кроме того, я хотел бы игнорировать webpage/assets/sass подкаталог. Мое подключение к Интернету довольно медленное, поэтому я хотел бы, чтобы загрузка была инкрементной или, по крайней мере, загрузка только тех файлов, которые были изменены с момента последнего коммита. Я не хочу загружать незафиксированные изменения.

Я знаю о git-ftp но, насколько я вижу из документов, я могу загрузить только все дерево с ним.

Можно ли добиться того, чего я хочу?

1 ответ

Решение

Это не так, потому что git не хранит дельты (измененные файлы), и каждый коммит содержит каждый файл в репозитории в данный момент времени.

Тем не менее, вы можете создать неглубокого клона с помощью всего лишь коммита с наконечником и принудительно отправить его на пульт. Это затем протолкнет минимальный объем данных через провод через git.

В качестве альтернативы, поскольку это производственная среда, тогда поддержка системы контроля версий полезна только для аварийных откатов. Так почему бы просто не написать скрипт релиз-пакета? Используйте что-то вроде rsync, которое будет передавать только измененные файлы, а не весь репозиторий.

Другие вопросы по тегам