Добавить в корзинуПозвонить
Найти в Дзене
gOLDOBIN iVAN

Система контроля версий GIT

Часть 1. Что такое GIT? Git — это система контроля версий, которая позволяет нескольким разработчикам одновременно работать над одним продуктом. Это настолько важно и полезно, что сегодня практически все программисты в мире пользуются Git. И не только программисты! Систему Git создал в 2005 году Линус Торвальдс, когда вместе с командой разрабатывал ядро операционной системы Linux. До того как появилась эта современная система управления версиями кода, разработчики использовали централизованную систему CVS — и очень страдали. Часть 2. Чем хорош GIT? Он хорош буквально со всех сторон. Система контроля версий знает о нескольких состояниях кода (как бы по вертикали). Это как современный смартфон, который сохраняет не только фотографию, но и то, что было немного до и немного после нажатия на кнопку, — можно «отмотать» время и выбрать лучший момент. Аналогично в Git хранятся все версии проекта — они называются коммитами. Можно откатить текущую версию кода до предыдущей или сразу на нескольк

Часть 1. Что такое GIT?

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

Систему Git создал в 2005 году Линус Торвальдс, когда вместе с командой разрабатывал ядро операционной системы Linux. До того как появилась эта современная система управления версиями кода, разработчики использовали централизованную систему CVS — и очень страдали.

Часть 2. Чем хорош GIT?

Он хорош буквально со всех сторон.

Система контроля версий знает о нескольких состояниях кода (как бы по вертикали). Это как современный смартфон, который сохраняет не только фотографию, но и то, что было немного до и немного после нажатия на кнопку, — можно «отмотать» время и выбрать лучший момент. Аналогично в Git хранятся все версии проекта — они называются коммитами. Можно откатить текущую версию кода до предыдущей или сразу на несколько шагов назад. Удобно, если после изменения коммита допущена ошибка.

А ещё Git позволяет работать над одним кодом десяткам и даже тысячам людей, как бывает в Яндексе или больших опенсорсных проектах, — как бы по горизонтали. В таком случае каждый разработчик получает свою версию кода, вносит в неё изменения и отправляет обратно. Коммиты разных программистов объединяются — мёржатся. У каждого коммита есть уникальный номер, он называется хешем, и комментарий, который описывает суть изменений. А все коммиты в одном проекте складываются в единую структуру — ветку.В одном проекте — репозитории — может быть несколько веток, которые могут переплетаться или схлопываться.

-2

Часть 3. История создания GIT.

Разработка ядра Linux велась на проприетарной системе BitKeeper, которую автор — Ларри Маквой, сам разработчик Linux — предоставил проекту по бесплатной лицензии. Разработчики, высококлассные программисты, написали несколько утилит, и для одной Эндрю Триджелл произвёл реверс-инжиниринг формата передачи данных BitKeeper. В ответ Маквой обвинил разработчиков в нарушении соглашения и отозвал лицензию, и Торвальдс взялся за новую систему: ни одна из открытых систем не позволяла тысячам программистов кооперировать свои усилия (тот же конфликт привёл к написанию Mercurial). Идеология была проста: взять подход CVS и перевернуть с ног на голову, и заодно добавить надёжности.

Начальная разработка велась меньше, чем неделю: 3 апреля 2005 года разработка началась, и уже 7 апреля код Git управлялся неготовой системой. 16 июня Linux был переведён на Git, а 25 июля Торвальдс отказался от обязанностей ведущего разработчика.

Торвальдс так саркастически отозвался о выбранном им названии git (что на английском сленге означает «мерзавец»):

Часть 4. Git — это не GitHub.

Git — это программа, которую нужно установить и подключить к проекту для управления системой контроля версий. GitHub — это сайт-хранилище для историй версий проектов: вы подключаете Git, регистрируетесь на GitHub, создаёте онлайн-репозиторий и переносите файлы с Git на GitHub.

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

Если нужно, Git можно заменить альтернативной программой контроля версий, а GitHub — другим онлайн-хранилищем кода. Большинству работодателей это не нужно, поскольку знакомство с другими сервисами отнимает время и неудобно многим разработчикам.

Глава 5. Зачем новичку учить Git?

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

  • Новый человек приходит в компанию и клонирует репозиторий проекта на ПК.
  • Получает задачу, создаёт новую ветку и пишет код.
  • Когда всё готово — отправляет запрос на добавление кода в master-ветку.
  • Другие разработчики смотрят код, оставляют комментарии и указывают на ошибки.
  • Новичок дорабатывает код, обновляет master-ветку и переходит к следующей задаче.

Это общая схема того, как проходит командная работа в проекте. В ней не учтены правила использования Git, которые каждая команда пишет под себя. Например, у каждой команды свой порядок проверки кода и свои критерии его готовности для добавления в master-ветку.