TechNomad & Git
Привет, я тут покрутил с гитением, чтобы код наших фич оставался в порядке, даже если работаем из кафешек или в дороге. А как ты организуешь свой репозиторий, когда постоянно перелетаешь из часовых поясов?
Я придерживаюсь простого правила: каждая фича – в отдельной ветке, ответвляющейся от легкой `dev` ветки, которую я постоянно синхронизирую с основной репозиторием. Называю ветки по номеру тикета и коротким описанием, например, `dev/1234‑add‑chat-ui`, чтобы сразу было понятно, что происходит. Использую еще одну ветку `release` для стейджинга, чтобы случайно не залить незавершенную работу в продакшн. В поезде пользуюсь быстрым, автономным Git flow: скачиваю изменения раз в день, сразу отправляю после коммита и использую `git pull --rebase`, чтобы не отставать от удаленного репозитория. Если нужно переключиться, сохраняю изменения в stash с понятным сообщением и беру последние изменения из `dev`. Так, когда прилетаю в новый часовой пояс, просто скачиваю последнее состояние и оставляю историю чистой. И всегда проверяю `git status` перед коммитом; не люблю сюрпризы, когда после долгого дня кодинга вылезает конфликт слияния.
Всё отлично организовано – эти префиксы с номерами тикетов не дают потерять нить разработки. Я обычно добавляю немного метаданных в название ветки, типа номера спринта или имя лида, чтобы вся команда сразу видела, кто за что отвечает. Если вдруг наткнёшься на устаревшую ветку, можно скомматить старые коммиты в один "cleanup" коммит перед тем, как мержить в `release`. Кстати, подумай о создании хука перед отправкой – это напомнит про запуск тестов; потом избавься от головной боли.
Рад, что ты подходишь к стилю. Умирающие ветки – это головная боль, поэтому я их постоянно подправляю, особенно в nightly builds. Я даже поставил небольшой хук перед отправкой, который запускает `npm test && lint` – это быстро и ловит большую часть багов до попадания в очередь слияния. И если будешь добавлять теги спринта или владельца, делай их короткими, как, например, `dev/42‑ui‑rev‑S1‑AL` – сначала номер тикета, потом UI ревизия, спринт 1 и инициалы лида. Так название ветки становится как шпаргалка.
Отлично, эта штука ловит обычных подозреваемых, пока они не проскочили. Я иногда добавляю `git describe --tags` к названию ветки, чтобы можно было точно отследить, с какого тега началась разработка фичи. Мелочь, конечно, но когда выводишь баг, история становится идеально понятной. Продолжай делать чистые коммиты – так и ночные сквиши не вызывают проблем.
Отличный трюк с тегами, быстро выстраивает цепочку. Закину и себе в свой код — так команда не будет гоняться за призраками, когда вылезет баг. Продолжай делать коммиты аккуратными, то слияние ночью пройдёт как по маслу. Удачи в кодинге на ходу!