Вилка в виде подклада

Узнай, как обычная вилка превращается в секретный тайник для кэша и конфет — дерзкий лайфхак, который удивит друзей!

Вилка в виде подклада — это временное ответвление (fork) от основной ветки
репозитория, которое создаётся исключительно для решения конкретной задачи
и не предназначено для повторного слияния обратно.
После выполнения задачи такая ветка обычно удаляется или закрывается,
а её наработки применяются в другом виде (например, в виде патчей или ручной интеграции).

Когда применяется

  • Приватные эксперименты: вы хотите безопасно протестировать гипотезу,
    не пачкая историю основной ветки.
  • Спешные хотфиксы: нужно быстро починить критичный баг продакшена,
    но не хочется мержить «грязную» историю коммитов.
  • Учебные/исследовательские задачи: команда разработчиков не планирует

    включать результат в релиз, но хочет сохранить код «на всякий случай».

  • Альтернативная реализация: вы пробуете подход, который может
    оказаться ненужным, и не хотите вызывать лишние ревью.

Жизненный цикл подкладной вилки

  1. Создание: отводим ветку от нужного коммита (git checkout -b tmp/fix-memory-leak).
  2. Работа: вносим правки, коммитим без ограничений.
  3. Извлечение результатов:
    • формируем патч (git format-patch HEAD~n),
    • или копируем нужные куски кода вручную,
    • или переносим в другую «чистую» ветку через git cherry-pick.
  4. Закрытие: ветку можно удалить локально и на сервере
    (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], чтобы ваш запрос
попал к нужному специалисту.