Рабочий процесс для связки GitHub — сайт

  1. Основная версия сайта хранится на GitHub в ветке Main.
  2. Защищаем ветку Main, чтобы туда нельзя было делать Push напрямую (как это сделать).
  3. Для внесения изменений на сайт клонируем или скачиваем ветку Main на локальный сервер.
  4. Создаем новую ветку для разработки и вносим изменения в нее.
  5. После окончания внесения изменений в новую ветку пушим ее на GitHub и создаем Pull Request в ветку Main.
  6. После проверки корректности работы сайта из новой ветки делайм Squash Merge новой ветки и ветки Main.
  7. После Squash Merge должен происходить Autodeploy* на сервер, где расположен основной сайт.

* Autodeploy — автоматическая выгрузка проекта на рабочий сервер. Как это сделать написал тут.

Как запретить Push напрямую в ветку Main.

Меню репозитория -> Settings -> Branches -> Add rule (или Edit rule).

Ставим галочку напротив пункта: Require a pull request before merging

Если нужно применить запрет для администратора репозитория, ставим галочку: Do not allow bypassing the above settings