×
Россия +7 (495) 139-20-33

Как работать с сайтом и не поломать его, или Для чего нужен Git?

Россия +7 (495) 139-20-33
Шрифт:
3 15266

Все клиенты переживают за работоспособность своего сайта, особенно это касается больших интернет-магазинов, потому что это непосредственно влияет на прибыль. А если сайт не будет работать, то все усилия по продвижению и рекламе будут напрасны. А как показывает практика, только у 1 из 10 сайтов правильно организована структура рабочего процесса. Поэтому если вы хотите, чтобы ваш сайт стабильно работал и приносил доход, то базовая вещь, которая должна присутствовать – это распределенная система контроля версий.

Вам будет полезна эта статья, если:

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

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

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

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

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

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

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

Как показывает практика, у большинства сайтов сейчас работа построена следующим образом: если нужно сделать какие-то правки на сайте, то они делаются сразу на нем, считается, что так быстрее. Некоторые, более продвинутые, делают эти же правки на тестовой версии, но в этом случае есть возникают сложности с актуализацией файлов. В случае ошибки – часто просто разворачивается старый, но рабочий бекап. Однако все изменения затрутся и работу придется выполнять снова.

бэкап.png

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

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

В итоге простой перенос уже сделанной работы занимает чуть больше времени.

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

Как же работает система контроля версий?

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

В качестве системы контроля версий используем git. Сначала необходимо установить его на сервере. Для этого обязательно нужно иметь SSH-доступ. Кроме того, потребуется удаленный репозиторий. Он точно такой же, как на вашем сайте, но находится в другом месте, это позволяет работать с ним и рабочему, и тестовому сайту на равных.

Существуют веб-сервисы для хостинга IT-проектов, например, github.com и bitbucket.org, оба имеют бесплатные версии, в которых есть ограничения на количество пользователей или приватных репозиториев. Но мы используем бесплатную альтернативу – GitLab.

Как работать с git?

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

Как работать с git 1.png

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

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

git push origin master

Далее вебхук подхватит команду, запустит скрипт на рабочем сайте и автоматически обновит файлы. Т.е. разработчикам даже не нужен доступ к сайту.

Вебхуки (WebHooks) – это уведомление сторонних приложений посредством отправки на них уведомлений о произошедших событиях.

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

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

А вот схема работы процесса в одной картинке:

Как работать с git 2.png

Автоматический деплой с помощью вебхука

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

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

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

git reset --hard origin/master

Почему нужно удалять незафиксированные изменения?

Если коротко – исключить возможность конфликтов.

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

Вывод

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

Для этого необходимо:

  • Иметь SSH-доступ к сайту.
  • Делать правки только на тестовой версии.
  • Не вносить правки на боевом сайте. 
(Голосов: 5, Рейтинг: 5)
Читайте нас в Telegram - digital_bar

Есть о чем рассказать? Тогда присылайте свои материалы Марине Ибушевой


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Михаил Лямин
    3
    комментария
    0
    читателей
    Михаил Лямин
    больше года назад
    git push origin master
    -
    0
    +
    Ответить
  • Антон
    1
    комментарий
    0
    читателей
    Антон
    больше года назад
    Максим, статья интересная, тоже думаем внедрить гит. А скажите как долго происходит этот процесс?
    -
    2
    +
    Ответить
    • Макс Ляпцев
      1
      комментарий
      0
      читателей
      Макс Ляпцев
      Антон
      больше года назад
      Если использовать в качестве удаленного репозитория github.com или bitbucket.org, то для настройки потребуется только создать аккаунт, создать репозиторий и подключить его к локальному репозиторию на сайте, который создается одной командой. Весь процесс займет минут 20.
      В случае с гитлабом все немного сложней, но имеет смысл, когда сайтов достаточно много.
      -
      3
      +
      Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Алгоритм продвижения сайта через Pinterest
Виктор Гаврюков
29
комментариев
1
читатель
Полный профиль
Виктор Гаврюков - В самом вверху есть ссылка на мою группу в ВК, там где автор материала. Через группу и свяжитесь со мной_)
Как забрать 5 мест в выдаче из 10. Кейс-эксперимент
Виктор Гаврюков
29
комментариев
1
читатель
Полный профиль
Виктор Гаврюков - такое можно делать и с ВЧ_)
Ссылочный апдейт Google: что изменится для SEO-специалистов в рунете
Тимур
6
комментариев
0
читателей
Полный профиль
Тимур - Понял, спасибо за информацию.
3 основные ошибки, которые допускают владельцы сайтов при продвижении
Виктор Гаврюков
29
комментариев
1
читатель
Полный профиль
Виктор Гаврюков - Не обращай внимания_) Если у тебя хороший ресурс, то ты будешь первоисточником, и все кто своровал, автоматически начнут на тебя ссылаться, точнее, так гугл будет считать_)
Как продвинуть сайт по коммерческим запросам в ТОП-10 с помощью ресурса Reddit
Denis Zar
2
комментария
0
читателей
Полный профиль
Denis Zar - пользовались услугами по продвижению на реддит от reddit-marketing.pro?
Как мы увеличили трафик из Яндекса более чем в 3 раза за неделю на сайте клиники. Кейс
Андрей
1
комментарий
0
читателей
Полный профиль
Андрей - У большинства сайтов произошел рост в Гугле в декабре и в марте Яндекса. Ваши шаманства тут не причём :)
Рост ботных переходов на сайт: как интерпретировать и что делать
Mike
5
комментариев
0
читателей
Полный профиль
Mike - как это проверить? что товары выводится именно на основе спроса, а не по заданным алгоритмам?
Сравнительная статистика уровня жизни SEO-специалистов в семи странах, включая Россию
Рустам
1
комментарий
0
читателей
Полный профиль
Рустам - Средняя температура по больнице, подсчет даже близко не отображает действительность, особенно учитывая разность цен и уровня зп в разных частях больших стран (США, Канада, Россия)
Зарабатываем с помощью текстов: как создать уникальный контент и монетизировать сайт
dotaidi
94
комментария
0
читателей
Полный профиль
dotaidi - Какой-то нейро-физиологический подход к теме создания контента: 1. " ..чтобы контент отвечал интересам аудитории, закрывал ее боли и потербности". Закрыть боль аудитории? Это как понимать, текст что должен выполнять функцию анестезии? Зачем падать в медицинские категории, это ведь профессиональный текст о SEO, а не триллер и не художественная литература, где метафоры уместны. 2. "Главное — чтобы процесс сбора информации вас увлекал и нравился, ведь эта работа требует усилий". Построение тезиса предполагает, что если работа не нравится, то и усилий она не требует. И вообще, упор в работе на главное значение "нравится" — очень спорное и тоже из области НЛП-игрушек. Стилистика статьи тоже желает более продуманного подхода к использованию словосочетаний специфической терминологии: "вы можеет создавать материалы в коллаборации с известными брендами, релевантными тематике вашего сайта". Бренд не может быть релевантным из-за того, что это целый комплекс явлений, собранный под некоторой узнаваемой семантической или графической символикой. Релевантность — качество, свидетельствующее о совпадении запроса(желания) и выдачи (полученной информации). Это нужно хотеть бренд, чтобы он стал релевантным. Аналогия и релевантность не синонимы. "прикладывайте усилия в сбор и обработку информации" и многие подобные обороты делают статью не просто нерелевантной, но просто безграмотной.
Как доработка структуры вывела сайт в ТОП-10 Google и увеличила трафик в 2 раза. Кейс Связной Трэвел
Дмитрий
3
комментария
0
читателей
Полный профиль
Дмитрий - Вероятнее всего было обновление Google и позиции были снижены в связи с низкой скоростью загрузки страниц (так как доработке ведутся не только по SEO, но и в целом по функционалу сайта, появляются новые скрипты). В этот период в Google Search Console увеличилось количество страниц с низкой скоростью загрузки. Мы выявили несколько проблем, которые снижают скорость загрузки страниц и выдали рекомендации по их устранению. Пока данные рекомендации находятся в работе. Также был проведен анализ EAT факторов и проверка сайта на соответствие требованиям Google к YMYL сайта, выданы рекомендации по доработке данных факторов (ждем внедрения наших рекомендаций, поделимся потом результатами).
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
385
Комментариев
373
Комментариев
262
Комментариев
249
Комментариев
171
Комментариев
156
Комментариев
141
Комментариев
121
Комментариев
114
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
94
Комментариев
80
Комментариев
77
Комментариев
74
Комментариев
67
Комментариев
62
Комментариев
60
Комментариев
59

Отправьте отзыв!
Отправьте отзыв!