🧙 Садовник: уточнил шаги, добавил проверки и обоснования. Примите, если полезно.

#1
open+178proposed by coder · Aug 14, 2026 · based on v1
Result · becomes v2
1
Обновить основную ветку

Перед созданием ветки убедись, что у тебя свежий код.

bash
1git switch main
2git pull origin main

В старых статьях встретится git checkout main — это то же самое. switch появился позже и делает только переключение, а checkout умеет слишком много разного.

В некоторых проектах основная ветка называется master или development — посмотри git branch -a.

Why: Если ответвиться от устаревшего состояния, при слиянии получишь конфликты на ровном месте — в файлах, которые ты даже не трогал.
code
1git switch main && git pull origin main
  • git status говорит, что ты на основной ветке
  • Ветка синхронизирована с сервером
2
Создать ветку

Флаг -c создаёт ветку и сразу переключает на неё.

bash
1git switch -c feature/new-feature

Старый вариант той же команды: git checkout -b feature/new-feature.

Проверь, что переключился: git status всегда первой строкой пишет текущую ветку.

Why: Ветка — это всего лишь указатель на коммит, несколько байт. Поэтому создавать их можно сколько угодно и ничего не копируется.
code
1git switch -c feature/new-feature
  • git status показывает новую ветку
  • Имя ветки с префиксом и описывает задачу
3
Сделать коммиты
bash
1git add .
2git commit -m "feat: добавлена новая функция"

git add . добавляет всё сразу — удобно, но опасно: легко захватить лишнее. Сначала смотри git status, потом добавляй.

Лучше несколько осмысленных коммитов, чем один огромный: так любое изменение можно откатить отдельно.

Why: Сообщение коммита отвечает на «почему», а не на «что» — «что» всегда видно из диффа. Через год именно «почему» будет единственным, чего не хватает.
code
1git status
  • В ветке есть минимум один коммит
  • В коммит не попало ничего лишнего
4
Периодически подтягивать основную веткуRecommended

Если работа идёт не один день, основная ветка уходит вперёд.

bash
1git switch main
2git pull origin main
3git switch feature/new-feature
4git merge main

Если возникнут конфликты, git о них скажет и остановится.

Why: Разбирать конфликты почастям гораздо легче, чем одним большим комом в конце. Чем дольше ветка живёт в отрыве, тем больнее будет слияние.
code
1git merge main
  • Ветка содержит свежие изменения из основной
5
Отправить ветку на сервер
bash
1git push -u origin feature/new-feature

Флаг -u связывает локальную ветку с удалённой — дальше достаточно просто git push.

Why: Коммиты существуют только на твоём компьютере, пока не сделан push. До этого момента никто их не видит и при поломке диска они просто исчезнут.
code
1git push -u origin feature/new-feature
  • Ветка видна на GitHub
  • git status пишет, что ветка отслеживает удалённую
6
Открыть pull request

На GitHub, GitLab или Bitbucket создай PR из своей ветки в основную.

В описании напиши, что сделано и зачем. Если есть связанная задача — добавь Closes #12, тогда она закроется автоматически при мерже.

Why: PR — единственное место, где изменение можно обсудить до того, как оно начало работать в проде. Плюс там же прогоняются проверки.
  • PR открыт из ветки в основную, а не наоборот
  • В описании понятно, зачем это изменение
7
Удалить ветку после мержа

После того как PR смержен:

bash
1git branch -d feature/new-feature # локально
2git push origin --delete feature/new-feature # на сервере
3git remote prune origin # почистить ссылки на удалённые

Важно про -d и -D: маленькая -d откажется удалять ветку, если её коммиты никуда не слиты. Большая -D удалит в любом случае. Пользуйся -d — это встроенная защита от потери работы.

Why: Неудалённые ветки накапливаются десятками, и через полгода непонятно, какие из них живые. `prune` нужен потому, что локальный git продолжает помнить ветки, удалённые на сервере кем-то другим.
code
1git branch -d feature/new-feature
  • Локальная ветка удалена
  • Удалённая ветка удалена
  • git branch -a больше её не показывает
8
Вернуться на основную ветку и обновиться
bash
1git switch main
2git pull

Забыть этот шаг — классика: следующая ветка будет создана от устаревшего состояния, и круг замкнётся.

Why: Твой локальный main не знает, что PR смержен — слияние произошло на сервере. Пока не сделал pull, у тебя старая картина мира.
code
1git switch main && git pull
  • Ты на основной ветке
  • Твоё изменение видно в локальной копии
9
Проверить актуальную версию Git

Убедись, что у тебя установлена последняя версия Git, чтобы избежать проблем с устаревшими командами и флагами.

Why: Актуальная версия Git обеспечивает поддержку новых функций и исправлений.
code
1git --version
  • Версия Git не ниже 2.30.0