TGViewer
10 минут до кода 10 минут до кода @ten_minutes_to_code · 228 subscribers
Post #136 108
Ветвление в Git

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

Но ценность гита не только в «машине времени», но и в концепции веток. Ветка — это виртуальная копия состояния системы, которая позволяет работать изолированно.

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

Ветки решают проблему параллелизма. Вы работаете в своей «песочнице», а когда функционал готов — схлопываете изменения в основную ветку (main или master) одним мерж-коммитом.

Git Flow: Когда релиз превращается в бутылочное горлышко

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

И вот когда релиз готов, мы сливаем ветку dev в ветку main и пользователи получаю новые фичи, а разработчики начинают работать над новым релизом.

Проблема Git Flow в его линейности. Если на релиз запланировано 10 фич, и одна из них готова только на 90% (разработчик заболел или задача оказалась сложнее), весь релиз парализован. Пользователи не получают готовые 90% функционала, потому что они «заперты» в одной ветке dev вместе с недоделками.

Continuous Integration: Отмена релизных циклов

В философии CI (Continuous Integration) мы не ждем «дня релиза». Код улетает в лайв по 10-20 раз в день, как только фича готова и прошла все тесты.

Стандартная схема main + dev здесь рассыпается: вы не можете подлить в прод одну конкретную фичу из dev, не зацепив при этом весь остальной «мусор», который еще не готов к деплою.

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

На крупных проектах стейджей может быть еще больше: master, pre-master, integration, development. Каждая ветка соответствует конкретному окружению (серверу), где живет код.

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

🔥 — если за минимализм и две ветки.
🚀 — если плодите ветки под каждый стейдж.

А если остались вопросы или что-то звучит слишком абстрактно — пиши в комменты, обязательно разберем!

10МДК | ВЕБМастер
  • 🔥 3
More from @ten_minutes_to_code
  1. May 28, 2026Первый сезон получился про путь “от пользователя к инженеру”. Именно эту картину мы весь с…
  2. May 28, 2026Когда я запускал этот канал, у меня была довольно простая идея: писать каждый день коротки…
  3. May 7, 2026Почему нормализация БД — это чистая логика, а не бюрократия На любом ongoing-проекте требо…
  4. May 3, 2026🤔 А где новые посты? Сори что вот так пропал без предупреждения, но я думал что справлюсь…
  5. Apr 29, 2026Почему HTTPS не спасет ваши секреты Замочек в адресной строке браузера — это мощное успоко…
  6. Apr 28, 2026Целостность данных против иллюзии атомарности Начинающий разработчик видит базу данных как…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →