#linux #ubuntu #git
Как реализовать автоматический коммит и пуш в удаленный репозиторий используя базовые утилиты Ubuntu? Как корректно обработать отсутствие изменений? Данный репозиторий планируется использовать для архивного хранения изменений на сайте без cms. У нас уже нормально используется git для хранения кода, но вот сейчас задумались о том, чтобы хранить сайт без cms в git. Это даже скорее архивное хранение. Ну и "отчетность" о том, что и когда меняли
Ответы
Ответ 1
По моему личному мнению, всё нужно делать ровно наоборот. Вы меняете сайт напрямую и хотите сохранять изменения постфактум. В результате у вас будет только информация о том, в какой день изменилась та или иная строка, но никакой информации о точном времени и авторе изменения. А когда нет информации об авторе, нет и ответственности. А ещё изменения, внесённые в течение дня, не будут иметь бэкапа. Изменения также не будут иметь осмысленного комментария. Зачем что-то поменяли или добавили? Через неделю уже никто не вспомнит. Считайте, что вы купите абонемент на факапы. Другими словами, технически ваша задача решается очень легко (cron + git), но эта задача не приблизит вас к цели - бэкапам и отчетности об изменениях. Гораздо более надёжный способ - проводить все изменения сразу и исключительно через git, разворачивая боевое окружение из определённой ветки (обычно master или production). Способов разворачивать сайт из git множество и они за рамками этого вопроса. Суть вот в чём: если кто-то захотел поменять хоть даже одну строку - делает коммит в ветку, из которой разворачивается сайт. Если этот коммит всё сломал - откатываемся на прошлый и делаем выводы. Очень хорошо и надёжно будет использовать тестовое окружение, чтобы не выкатывать сразу на бой. В таком случае вы либо разворачиваете сайт на тестовое окружение из каждой feature-ветки, или из какой-то одной, в которую мержатся feature-ветки. Довольно распространённая практика: master разворачивается на stage, production разворачивается на бой. Про развертывание сайтов из git: Не самые современные методы: Настройка и развертывание проекта c помощью Git Вполне современный метод: (Habr) GitLab CI: Учимся деплоить Using Git to manage a web site How To Set Up Automatic Deployment with Git with a VPS Про модель работы и релизы (каждое изменение на бою - это релиз, хоть и небольшой) Как правильно отправить релиз на git?Ответ 2
Используйте утилиту Cron + Bash. В Cron задаете период, который будет соответствовать вызову Bash файла. В нем необходимо будет прописать скрипит перехода в директорию репозитория и добавить вот такие команды: git add -A git commit -m "время коммита, например" git push [server] [branch] Далее просто запускаете Cron-скрипт и все. Но да, это извращение, если Вы начали использовать Git - то будьте добры, разберитесь в нем и для чего он нужен, иначе толку от него будет не очень много.Ответ 3
GIT не подходит для этой задачи, так он создан для того что бы хранить и отслеживать только изменения в проекте опираясь на действия разработчиков. Хранение проектов с их описаниями и фиксации времени задача для программ из другой категории.
Комментариев нет:
Отправить комментарий