Ветки и Pull Request
Урок 9 из 26 курса «Вайбкодинг: курс с нуля». Бесплатно, с анимациями и тестом.
main: живой сайт
Ветка: отдельная линия коммитов в проекте. Главная ветка обычно называется main. Если хостинг подключён к репозиторию, то, что лежит в main, и есть сайт, который прямо сейчас видят люди. Нижняя линия на схеме: это main. Отсюда правило: в main не экспериментируют. Сломал main, и сайт сломан у всех, пока ты чинишь.
Ветка: копия для экспериментов
Пример: нужна кнопка «Заказать заранее» на сайте кофейни, где ты подрабатываешь. Создаёшь ветку, параллельную копию проекта. На схеме она уходит вверх и называется «новая-кнопка». В ней можно сделать сколько угодно коммитов, тут их два. Живой сайт в это время не меняется. Не вышло? Просто бросаешь ветку, main ничего не заметит.
Pull Request: проверка перед слиянием
Pull Request, коротко PR: запрос «влей мою ветку в main». На странице PR видно три вещи. Дифф: какие строки добавлены и какие удалены. Комментарии: можно обсудить правки с другом или с ИИ. Автоматические проверки: программы сами прогоняют код и ставят галочку, если всё прошло. На схеме ветка возвращается в main как раз через эту коробку.
Превью и merge
Многие хостинги собирают для ветки превью: отдельную копию сайта по своей ссылке. Это чип «превью-ссылка» на схеме. Открываешь её с телефона, жмёшь новую кнопку, смотришь, ничего ли не поехало. Живой сайт при этом не тронут. Всё ок? Жмёшь merge («слить»): изменения ветки попадают в main, и хостинг сам обновляет живой сайт.
Как работать так с агентом
Схема та же, просто код пишет ИИ. Даёшь агенту задачу и добавляешь: «Сделай это в отдельной ветке и открой PR». Он создаёт ветку, делает коммиты и открывает PR. Ты открываешь превью, проверяешь и пишешь, что поправить. Когда всё работает, merge делаешь сам. Так ошибка ИИ остаётся в ветке, а не на живом сайте.
Проверь себя
- Зачем делать новую функцию в отдельной ветке?
Правильный ответ: Чтобы пробовать, не ломая живой сайт в main. Ветка: параллельная копия. В ней можно ошибаться сколько угодно, а main с живым сайтом не меняется до merge. - Что такое Pull Request?
Правильный ответ: Запрос влить ветку в main, с диффом и проверками. PR: страница, где видно, что изменилось, есть комментарии и автопроверки. Скачать код с GitHub: это pull, другое дело. - Агент открыл PR. Что делаешь перед merge?
Правильный ответ: Открываю превью и проверяю, что всё работает. ИИ тоже ошибается, поэтому финальная проверка за тобой. Превью показывает новую версию до того, как она попадёт на живой сайт.