Вилка в виде подклада — это временное ответвление (fork) от основной ветки
репозитория, которое создаётся исключительно для решения конкретной задачи
и не предназначено для повторного слияния обратно.
После выполнения задачи такая ветка обычно удаляется или закрывается,
а её наработки применяются в другом виде (например, в виде патчей или ручной интеграции).
Когда применяется
- Приватные эксперименты: вы хотите безопасно протестировать гипотезу,
не пачкая историю основной ветки. - Спешные хотфиксы: нужно быстро починить критичный баг продакшена,
но не хочется мержить «грязную» историю коммитов. - Учебные/исследовательские задачи: команда разработчиков не планирует
включать результат в релиз, но хочет сохранить код «на всякий случай».
- Альтернативная реализация: вы пробуете подход, который может
оказаться ненужным, и не хотите вызывать лишние ревью.
Жизненный цикл подкладной вилки
- Создание: отводим ветку от нужного коммита (
git checkout -b tmp/fix-memory-leak). - Работа: вносим правки, коммитим без ограничений.
- Извлечение результатов:
- формируем патч (
git format-patch HEAD~n), - или копируем нужные куски кода вручную,
- или переносим в другую «чистую» ветку через
git cherry-pick.
- формируем патч (
- Закрытие: ветку можно удалить локально и на сервере
(git branch -D tmp/fix-memory-leak && git push origin :tmp/fix-memory-leak).
Пример командной работы
git checkout -b tmp/hack-123 main git format-patch main --stdout > ~/hotfix-123.patch scp ~/hotfix-123.patch dev@review:/tmp/
Отличие от обычной feature-ветки
| Критерий | Feature-ветка | Вилка-подклад |
|---|---|---|
| Цель | Слияние в основную ветку | Только временное хранилище |
| Жизненный цикл | Долговременный, проходит ревью | Короткий, без ревью |
| История коммитов | Должна быть «чистой» | Может быть «грязной» |
Лучшие практики
- Именуйте ветку префиксом
tmp/илиscratch/, чтобы коллеги сразу поняли её назначение. - Не пользуйтесь подкладом для задач, которые гарантированно войдут в релиз, создайте полноценную feature-ветку.
- Добавьте в
.gitignoreвременные артефакты, чтобы они не мешали вам при создании патчей. - Документируйте в README или внутри комментариев, почему экспериментальная вилка была создана.
Контакты для обращений
Если у вас возникли вопросы по организации процесса, применению Git-вилок или
настройке CI/CD, обращайтесь:
- Техническая поддержка Git-сервера:
support-git@company.ru,
тел. +7 (495) -23-45-67 (вн. 234). - Координатор DevOps-команды:
devops@company.ru,
Telegram-чат @company_devops. - Внутренняя Wiki:
wiki.company.ru/git/patch-flow
(только из VPN).
Всегда указывайте в теме письма префикс [SUBFORK], чтобы ваш запрос
попал к нужному специалисту.