Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Автоматический ежедневный коммит в репозиторий git

#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 не подходит для этой задачи, так он создан для того что бы хранить и отслеживать только изменения в проекте опираясь на действия разработчиков. Хранение проектов с их описаниями и фиксации времени задача для программ из другой категории.

Комментариев нет:

Отправить комментарий