Главная · Статьи · Что такое Git

Что такое Git простыми словами: ветки, коммиты и merge request

Вячеслав Степанов Вячеслав Степанов — проджект-менеджер, ментор ·

«Код в ветке, MR на ревью», «конфликт при мерже», «уже влили в main» — разработчики говорят так каждый день, а задача проджекта — понимать, что за этими словами стоит для сроков. Код писать не нужно: достаточно понять несколько понятий, и статус любой задачи станет прозрачным. Ниже — что такое Git, коммиты, ветки и merge request, откуда берутся конфликты и как проджект использует всё это в работе. Видео-версия — мой открытый урок, где весь путь проходим руками в браузере.

Как ваш код попадает на сервер: CI/CD и Git для всех | Урок 20

Если видео не открывается — смотри на YouTube (может понадобиться VPN).

Содержание
  1. Что такое Git
  2. Репозиторий, GitHub и GitLab
  3. Коммит
  4. Ветки
  5. Merge request и код-ревью
  6. Конфликт слияния
  7. Зачем Git проджект-менеджеру
  8. Как попробовать самому
  9. Типичные ошибки
  10. Частые вопросы

Что такое Git

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

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

Главная ценность Git для команды — параллельная работа без хаоса. Пять разработчиков пишут пять разных функций одновременно, каждый у себя, а потом аккуратно объединяют результат.

Репозиторий, GitHub и GitLab

Репозиторий (repository, «репа») — хранилище кода проекта вместе со всей историей изменений. Обычно у продукта отдельный репозиторий на бэкенд и отдельный на фронтенд.

Сам Git — это программа. А хранят репозитории и работают с ними вместе на платформах:

Отличаются в основном интерфейсом и названиями: в GitHub заявка на вливание кода называется pull request (PR), в GitLab — merge request (MR). По смыслу это одно и то же.

Коммит

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

Хорошая практика — указывать в подписи коммита номер задачи из трекера. Тогда Jira, связанная с Git, показывает прямо в карточке задачи, какие коммиты и ветки к ней относятся. Проджекту это даёт картину без вопросов «как там дела»: открыл задачу — видишь, что код уже пишется.

Ветки

Схема: от основной ветки main ответвляется ветка задачи, в ней появляются коммиты, затем merge request с ревью, и ветка вливается обратно в main
Ветка задачи живёт отдельно и вливается в основной код только после проверки.

Ветка (branch) — параллельная версия кода. Разработчик берёт задачу, делает от основной ветки свою, спокойно пишет код там и ничего не ломает остальным. Типичная схема веток:

Схемы бывают и сложнее — с отдельными ветками для разработки и подготовки релиза. Но принцип везде один: каждая задача живёт в своей ветке до тех пор, пока её не проверят.

Merge request и код-ревью

Когда задача готова, разработчик открывает merge request — заявку влить свою ветку в общую. Внутри MR видно, какие строки изменились, и коллеги оставляют замечания. Это и есть код-ревью: обычно другой разработчик или техлид проверяет, понятен ли код, нет ли в нём ошибок и рисков.

Параллельно с ревью запускаются автоматические проверки — тесты и проверки стиля. Если что-то упало, MR помечается красным крестом и влить его нельзя, пока разработчик не исправит. Когда ревью одобрено и проверки зелёные, ветку вливают — это называется мерж (merge). Как устроены эти автоматические проверки и выкатка на серверы, разберу в отдельной статье про CI/CD.

Хочешь пройти путь разработчика своими руками?
На менторстве ты повторяешь полный цикл в тренажёре: ветка, коммиты, сломанная проверка, исправление, merge request и вливание — без установки программ, прямо в браузере. Начни с бесплатной консультации.

Записаться на бесплатную консультацию

Конфликт слияния

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

Конфликт — нормальная рабочая ситуация, а не авария. Разработчик открывает спорное место, выбирает правильный вариант или объединяет оба и завершает слияние. Обычно это минуты.

Для проджекта частые конфликты — сигнал о процессе: двое регулярно правят одно и то же, ветки живут слишком долго, задачи нарезаны крупно. Решается это планированием: дробить задачи мельче и вливать чаще.

Зачем Git проджект-менеджеру

Схема: статус задачи в Jira и соответствующее состояние в Git — в работе: ветка и коммиты; код-ревью: открыт MR; тестирование: влит в test; готово: влит в main
Статус в трекере можно сверить с тем, что реально происходит в коде.

Как попробовать самому

Устанавливать ничего не нужно. Заведи бесплатный аккаунт на GitHub и прямо в браузере создай репозиторий, добавь файл, сделай ветку, измени файл в ней и открой pull request. За полчаса ты пройдёшь тот же цикл, что разработчик проходит каждый день, — и слова «ветка», «коммит» и «мерж» перестанут быть абстракцией.

Типичные ошибки

Частые вопросы

Что такое Git простыми словами?

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

Чем Git отличается от GitHub?

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

Что такое коммит?

Сохранённый шаг изменений в коде с подписью, что именно поменяли. История проекта состоит из цепочки коммитов.

Что такое merge request и pull request?

Одно и то же под разными названиями: заявка влить ветку с задачей в основной код. В GitLab она называется merge request, в GitHub — pull request. Перед вливанием изменения проверяют коллеги и автотесты.

Нужно ли проджект-менеджеру уметь работать с Git?

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

Читайте также
  1. Что такое API простыми словами
  2. Роли в IT-команде: кто есть кто и за что отвечает
  3. Что такое Jira и Confluence: гайд для новичка

Хочешь разобрать технику проджекта на живых примерах?
На моём YouTube-канале — открытые уроки курса: API, Git, CI/CD, архитектура и встречи спринта глазами проджект-менеджера.

Смотреть уроки на YouTube