Использование git для развертывания моего сайта без доступа по SSH
Я отслеживаю изменения моего сайта, используя git. Структура каталогов:
$ ls my-page
Gruntfile.js node_modules webpage package.json
Конечно, я хотел бы подтолкнуть только webpage
содержимое подкаталога на сервер. Кроме того, я хотел бы игнорировать webpage/assets/sass
подкаталог. Мое подключение к Интернету довольно медленное, поэтому я хотел бы, чтобы загрузка была инкрементной или, по крайней мере, загрузка только тех файлов, которые были изменены с момента последнего коммита. Я не хочу загружать незафиксированные изменения.
Я знаю о git-ftp
но, насколько я вижу из документов, я могу загрузить только все дерево с ним.
Можно ли добиться того, чего я хочу?
1 ответ
Это не так, потому что git не хранит дельты (измененные файлы), и каждый коммит содержит каждый файл в репозитории в данный момент времени.
Тем не менее, вы можете создать неглубокого клона с помощью всего лишь коммита с наконечником и принудительно отправить его на пульт. Это затем протолкнет минимальный объем данных через провод через git.
В качестве альтернативы, поскольку это производственная среда, тогда поддержка системы контроля версий полезна только для аварийных откатов. Так почему бы просто не написать скрипт релиз-пакета? Используйте что-то вроде rsync, которое будет передавать только измененные файлы, а не весь репозиторий.