<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Максим Кузнецов: заметки с тегом gitflow</title>
<link>https://maxkuznetsov.ru/tags/gitflow/</link>
<description>Простыми словами о веб-разработке</description>
<author>Максим Кузнецов</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Максим Кузнецов</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Простыми словами о веб-разработке</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>[Инструкция] Как работать с Git</title>
<guid isPermaLink="false">49</guid>
<link>https://maxkuznetsov.ru/all/instrukciya-kak-rabotat-s-git/</link>
<pubDate>Tue, 15 Jul 2025 11:15:15 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/instrukciya-kak-rabotat-s-git/</comments>
<description>
&lt;p&gt;(Это инструкция, которую приходится копировать из проекта в проект, поэтому размещаю и в блоге.)&lt;/p&gt;
&lt;h2&gt;Gitflow&lt;/h2&gt;
&lt;p&gt;Идейно система работы с ветками берётся из Gitflow, но с упрощениями.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://maxkuznetsov.ru/pictures/gitflow.png" width="1043" height="371" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Общее&lt;/h2&gt;
&lt;p&gt;В нашем проекте ветка &lt;b&gt;develop&lt;/b&gt; — ветка, которая содержит стабильный результат, который можно зарелизить на прод.&lt;/p&gt;
&lt;p&gt;Следуя этому принципу, в рамках работы по спринту в ветку develop вливаются фичи/задачи:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;стабильного качества (по мнению разработчика (всегда) и менеджера (аппрув менеджера требуется, если этого требует конкретная задача);&lt;/li&gt;
&lt;li&gt;из спринта, который в работе (то есть те задачи, которые должны быть в ближайшем релизе).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Если ведется работа по фиче, которая не войдет в ближайший релиз, она не вливается в develop.  Тестирование такой задачи можно проводить, подключая ветку фичи на свободную дев площадку (не вливая ее в develop ветку).&lt;/p&gt;
&lt;h2&gt;Правила именования&lt;/h2&gt;
&lt;p&gt;Каждый коммит и пулл-реквест должны именоваться в следующем формате:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[Sentry] EDS-1004: &lt;пояснение&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В квадратных скобках можно указать часть системы, которая затрагивается — это упростит поиск коммита, если что-то сломается. Списка частей системы нет, выбирайте на свой вкус. Из общих советов — это должно быть что-то широкое, чтобы был понятен контекст, но не слишком широкое, чтобы не терялся смысл.&lt;/p&gt;
&lt;p&gt;EDS-1004 — даёт понимание по какой задаче была изменена строка в кода (через git blame), а потом по задаче можно найти ПОЧЕМУ это было сделано.&lt;br /&gt;
Плюс почти все таск-трекеры позволяют сконнектиться с Gitlab/Github/etc, и тогда коммиты и ПРы будут показываться в таск-трекре. А в Gitlab/Github все упоминания задач будут отображаться ссылками на таск-трекер автоматически.&lt;/p&gt;
&lt;h2&gt;Работа с ветками&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Из ветки main (или аналогичных prod/master) создается ветка develop.&lt;/li&gt;
&lt;li&gt;На каждую фичу создаётся новая ветка вида feature/XXX-short-description от ветки develop. XXX — номер задачи из таск-трекера, &lt;short-description&gt; — краткое описание задачи на английском языке. Например: `feature/TASK-1777-change-forms-for-clients`.&lt;/li&gt;
&lt;li&gt;Когда фича готова (это значит, что разработчик считает, что фича выполнена корректно и протестирована локально) ветка фичи отправляется через Пулл-реквест в ветку develop. При создании Пулл-реквеста обязательно нужно выбрать галку «удалить ветку после мерджа», чтобы не разводить кладбище веток в git.&lt;/li&gt;
&lt;li&gt;Разработчик не забывает регулярно подтягивать ветку develop в свою ветку фичи в процессе разработки, чтобы уменьшить количество конфликтов при последующем MR в develop.&lt;/li&gt;
&lt;li&gt;Для релиза ветку develop мерджим в ветку main через MR в Gitlab/Githab/etc.&lt;/li&gt;
&lt;li&gt;Если в ветке prod обнаруживается критичный баг, то от main создается ветка hotfix/XXX-short-description.&lt;/li&gt;
&lt;li&gt;Как только исправление на ветке hotfix завершено, она мержится с ветками main, а затем с develop.&lt;/li&gt;
&lt;li&gt;После каждого мерджа тестируем в первую очередь новый функционал, потом все остальное.&lt;/li&gt;
&lt;li&gt;Если разработчик не успевает сделать свою задачу до релиза, то ветка фичи не мерджится в ветку develop.&lt;/li&gt;
&lt;li&gt;Если фича большая и не попадает в ближайший релиз, то разработку продолжаем в той же ветке под фичу, пока ее полностью не сделаем. Не забываем делать git pull, чтобы подтягивать все изменения c ветки develop. Это позволит подтягивать все изменения текущего спринта и разрешать конфликты как можно быстрее. Свою задачу можно протестировать на стейдже, залив её туда без мерджа.&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>


</channel>
</rss>