Rookee
Россия+7 (495) 960-65-87

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

Россия+7 (495) 960-65-87
Шрифт:
3 9108

Все клиенты переживают за работоспособность своего сайта, особенно это касается больших интернет-магазинов, потому что это непосредственно влияет на прибыль. А если сайт не будет работать, то все усилия по продвижению и рекламе будут напрасны. А как показывает практика, только у 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-доступ к сайту.
  • Делать правки только на тестовой версии.
  • Не вносить правки на боевом сайте. 
(Нет голосов)
Читайте нас в Telegram - digital_bar

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


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Михаил Лямин
    3
    комментария
    LANG_NO
    читателей
    Михаил Лямин
    больше года назад
    git push origin master
    -
    -1
    +
    Ответить
  • Антон
    1
    комментарий
    LANG_NO
    читателей
    Антон
    больше года назад
    Максим, статья интересная, тоже думаем внедрить гит. А скажите как долго происходит этот процесс?
    -
    2
    +
    Ответить
    • Макс Ляпцев
      1
      комментарий
      LANG_NO
      читателей
      Макс Ляпцев
      Антон
      больше года назад
      Если использовать в качестве удаленного репозитория github.com или bitbucket.org, то для настройки потребуется только создать аккаунт, создать репозиторий и подключить его к локальному репозиторию на сайте, который создается одной командой. Весь процесс займет минут 20.
      В случае с гитлабом все немного сложней, но имеет смысл, когда сайтов достаточно много.
      -
      2
      +
      Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Рейтинг Известности 2018: старт народного голосования
Михаил Р
1
комментарий
LANG_NO
читателей
Полный профиль
Михаил Р - 1. Demis 2. кокс 3. Ашманов 4. Скобеев 5. Digital Strategy
Сколько ссылок помогут продвинуть молодой сайт
Павел Андрейчук
29
комментариев
LANG_NO
читателей
Полный профиль
Павел Андрейчук - Дело в том, что вряд ли в ваших платных "качественных" кейсах найдётся хоть пару % действительно новой и полезной информации которой бы не было на общедоступных источниках.
Рейтинг Известности 2018: второй этап народного голосования
Константин Сокол
3
комментария
LANG_NO
читателей
Полный профиль
Константин Сокол - Кто был ответственный за дизайн таблицы голосования? Копирайтер?
Сайт на WordPress: за и против
Мира Смурков
1
комментарий
LANG_NO
читателей
Полный профиль
Мира Смурков - Людмила, я согласен с большинством комментаторов. Вы хоть один полноценный магазин сделали на этих движках? Woocommerce это система с супер возможностями. И к ней есть дополнительные модули, с функционалом, который вряд ли появиться на Битрикс. А самому это программировать - сотни тысяч рублей на разработку. А приведя в пример сложности с robots.txt и Sitemap вы ставите под вопрос вашу компетенцию в понимании Интернет-бизнеса и веб-разработки в целом. Во-первых это такие мелочи, а во-вторых это все делается на вордпресса за 2 минуты, и опять же с возможностями многократно превышающими Битрикс.
Кейс: вывод лендинга по изготовлению флагов на заказ в ТОП 1 по Санкт-Петербургу
utka21
5
комментариев
LANG_NO
читателей
Полный профиль
utka21 - Кейс как кейс. Для некоторых станет вполне возможно полезным. ( Для конкурентов точно) . А вот с комментариями , что то пошло не так )
Google обошел Яндекс по популярности в России в 2018 году: исследование SEO Auditor
Рамблер
1
комментарий
LANG_NO
читателей
Полный профиль
Рамблер - Вот вроде отечественный - это сказано верно.. «Я́ндекс» — российская транснациональная компания, зарегистрированная в Нидерландах. Так говорится в Википедии. И с хрена ли ОТЕЧЕСТВЕННЫЙ поисковик зарегистрирован в Европе? И где платится основная часть налогов? Ну-ууу, точно не в России. И если запахнет жаренным, то был Яндекс и нет Яндекса!
Обзор популярных CMS: плюсы и минусы
Гость
1
комментарий
LANG_NO
читателей
Полный профиль
Гость - У Битрикса техническое seo сильно страдает, чтоб оно там было нормальным придется все переделать. Безопасность у Битрикса тоже низкая, особено если надо дорабатывать функционал, как только правиться функционал у Битрикс , то уровень ее безопасности определяет тот разработчик , который этим занимается. Самые безопасные движки те, что нет в общем доступе и где нельзя ничего редактировать в коде. =)
8 методик в SEO, от которых давно пора отказаться
Евгений Сметанин
11
комментариев
LANG_NO
читателей
Полный профиль
Евгений Сметанин - Факторов вообще очень много, согласитесь, вы будете использовать максимальное их количество, особенно, если в ТОПе засели агрегаторы с сумасшедшими ПФ. В таких случаях, вхождение ключа в домен для маленького профильного сайта, сыграет свою положительную роль. Конечно же, если контент на страницах хорошего качества. У меня есть несколько успешных кейсов на эту тему. На сайте продают несколько видов товаров, а выстреливает в ТОП тот, название которого присутствует в доменном имени. Как корабль назовешь, так он и поплывет, верно?))
Инструкция: настраиваем цели Яндекс.Метрики через Google Tag Manager
Roman Gorkunenko
1
комментарий
LANG_NO
читателей
Полный профиль
Roman Gorkunenko - Здравствуйте. Подскажите, пожалуйста, можно с айпи метрики вытащить среднюю стоимость клика по утм меткам? В метрике есть такой шаблон tags_u_t_m, но он не совместим с меткой директа, у них разные префиксы.
Аудит структуры интернет-магазина мебели от «Ашманов и партнеры»
Дмитрий
8
комментариев
LANG_NO
читателей
Полный профиль
Дмитрий - Сергей, а вы допускаете, что вся ваша жизнь - seo-миф?
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
343
Комментариев
262
Комментариев
244
Комментариев
171
Комментариев
156
Комментариев
137
Комментариев
121
Комментариев
100
Комментариев
97
Комментариев
97
Комментариев
96
Комментариев
80
Комментариев
71
Комментариев
67
Комментариев
60
Комментариев
59
Комментариев
57
Комментариев
56
Комментариев
55

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