Заказать звонок
Заказ обратного звонка

Для чего нужен Git?


Достаточно много собственников интернет-магазинов переживают за работоспособность своего сайта. Поскольку именно работа сайта в условиях электронной коммерции влияет на доход. Поэтому для стабильной работы сайта необходимо использовать систему контроля версий.

Данная статья не техническая, а для большего понимания, почему необходимо использовать системы контроля версий на сайте. И как это поможет в дальнейшем по работе.

Система контроля версий - для чего она вашему сайту

Это система, регистрирующая изменения документов на сайте, благодаря которой можно вести удобную совместную разработку, также она дает возможность вернуться к предыдущим или альтернативным версиям сайта. Повышает безопасность, поскольку нет необходимости давать доступ к рабочему сайту, а можно использовать для всех доработок СКВ (систему контроля версий).

Зачем нужна система контроля версиями

- можно легко отследить ошибки.

- изменения сохраняются (когда, кем и что было сделано).

- исключена поломка сайта.

- возможность легко откатывать изменения до любой версии сайта.

- возможность использовать как простой инструмент для переноса данных с сайта разработки на рабочий сайт.

Как происходят изменения на сайте без контроля версий

Исходя из практики, мы видим, что работа с сайтом в большинстве случаев проходит таким образом: при необходимости внести изменения на сайте, они вносятся сразу на самом сайте, так как это быстрее. Кто-то вносит их на тестовой версии, но тут мы сталкиваемся, со сложностью по актуализации файлов. При возникновении ошибки — быстренько разворачиваем  бекап, но тогда все изменения не сохранятся, и придется все опять вносить.

Конечно, использование тестовой версии более безопасно, но в таком случае, много ручной работы и не стоит исключать человеческий фактор.

  • Если изменений много, программисту придется собрать список всех измененных файлов.
  • Программист работает в паре с другим программистом или верстальщиком и правят один файл. Как результат, кто последний сохранил тот и молодец.
  • Разработчик проделал огромную работу по сайту. Теперь нужно просто заменить все файлы на боевом сайте на новые. Но внезапно ему сообщают, что на сайте только что закончили работу по настройке ЧПУ, и, скорее всего, код разработчика работать не будет.
  • Даже если ошибка всплывет только в понедельник, программист без проблем вспомнит, в какой строчке кода сделал ошибку, их там всего-то несколько сотен тысяч.

В данном случае, самым безопасным и простым способом решения будет — использование системы контроля версий ее необходимо установить один раз. Но в дальнейшем это избавит от ряда неудобств.

Схема работы системы контроля версий

Любое завершенное действия программиста и верстальщика фиксируется системой. Как результат, есть история изменения всех файлов. И при необходимости можно вернуться на любой файл.

Для этого используем git, который устанавливаем на сервере. Тут нам понадобится SSH-доступ и удаленный репозиторий.

Мы используем бесплатную альтернативу – GitLab.

 

Как работать с GIT

Необходимо создать для каждой задачи соответствующую ветку. Благодаря чему, каждый программист работает с сайтом в своей ветке, при этом, не мешая, работе друг друга.

Любое логическое завершение задачи фиксируется с комментарием. Для переноса изменений необходимо отправить все на удаленный репозиторий.

После чего, вебхук видит команду и пускает в работу скрипт на основном сайте и автоматически обновит файлы.

 

В работе нескольких человек перед отправкой на рабочий сайт, необходимо разрешение с ведущим программистом.

Поэтому доступ к основной ветке следует запретить. А соединение с ней будет происходить по средству запросов (merge request).

После проверки ведущим программистом, если не требуется доработка, и нет правок, система принимает код, который с помощью вебхука отправляется на рабочий сайт.

После слияния ветки срабатывает вебхук, запускающий на рабочем сайте код, который в свою очередь автоматически обновляет содержание сайта, выполняя две простые команды:

  1. Забирает все изменения из удаленного репозитория

git fetch --all

  1. Обновляет файлы, до состояния зафиксированном на удаленном репозитории, при этом удаляя все изменения на сайте, которые не были зафиксированы.

git reset --hard origin/master

Конфликты возникают, когда произошли изменения в одном и том же файле, и при слиянии (merge) git не может решить, как правильно объединить файлы. Если одновременно редактировалась одна строка, то возникает конфликт. Программно невозможно решить, какая из версий должна быть на сайте.

Вывод

Если с вашим сайтом работает несколько программистов, для исключения ошибок необходимо использовать систему контроля версий. В таком случае вы обезопасите себя от ошибок, которые могут возникнуть в процессе работы.

Ищем PHP-программиста в нашу компанию

Комментарии

Пока нет комментариев

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