Новости

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

Автор Дата 06.03.2017

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

Ровно работать с git?

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


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

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

git push origin master

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

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

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

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

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


Автоматический деплой с через вебхука

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

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

git fetch —all

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

git reset —hard origin/master

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

Когда коротко – исключить возможность конфликтов.

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

Просиллогизм

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

Интересах этого необходимо:

  • Иметь SSH-доступ к сайту.
  • Делать правки только на тестовой версии.
  • Неважный (=маловажный) вносить правки на боевом сайте. 

Источник: www.seonews.ru

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

Автор Дата 06.03.2017

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

Чисто работать с git?

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


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

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

git push origin master

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

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

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

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

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


Автоматический деплой с через вебхука

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

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

git fetch —all

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

git reset —hard origin/master

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

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

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

Заключение

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

Угоду кому) этого необходимо:

  • Иметь SSH-доступ к сайту.
  • Делать правки только на тестовой версии.
  • Безлюдный (=малолюдный) вносить правки на боевом сайте. 

Источник: www.seonews.ru