Рекомендации по использованию Git

Частые, маленькие и осмысленные коммиты

Делайте коммиты часто — не ждите, пока «всё будет готово».
Маленький коммит — это безопасный снимок состояния.
Если что-то сломалось — вы легко найдёте, где именно.

Пример плохой практики:
Вы работаете над экраном входа 3 дня — меняете App.js, LoginScreen.js, api.js, styles.tsx — и только тогда делаете один коммит:
"finished login" — непонятно, что изменилось.

Пример хорошей практики:

  1. Добавил кнопку входа → feat: добавил кнопку входа с анимацией
  2. Подключил API для авторизации → feat: подключил POST /login к серверу
  3. Исправил баг с фокусом поля ввода → fix: исправил фокус на поле email в iOS

Каждый коммит — отдельная логическая единица.
Легче откатиться, легче ревью, легче находить баги.


Описательные сообщения коммитов

Сообщение коммита — это история вашего кода.
Оно должно отвечать на вопрос: «Что изменилось и зачем?»

Хорошее сообщение:
fix: убрал дублирование стилей в Button и PrimaryButton

Плохое сообщение:
fixed stuff

Используйте формат:

<тип>: <краткое описание>

Типы (по соглашению Conventional Commits):

  • feat: — новая функция
  • fix: — исправление бага
  • docs: — изменения в документации
  • chore: — технические задачи (обновление зависимостей, настройка сборки)
  • refactor: — рефакторинг без изменения поведения

Пример:

git commit -m "feat: добавил экран восстановления пароля"
git commit -m "fix: кнопка 'Войти' не реагировала на тач в Android"
git commit -m "chore: обновил expo SDK до версии 50"

Не пишите «исправил ошибку», «сделал лучше» — это неинформативно.
Пишите что было сделано, где, и если важно — почему.


Использование веток для новых фич и исправлений

Никогда не работайте напрямую в main.
Всегда создавайте ветку для каждой задачи.

Пример:

git switch main
git pull
git switch -c feature/login-screen
# ... работаю над экраном входа ...
git add .
git commit -m "feat: добавил экран входа с валидацией"
git push origin feature/login-screen

Затем на GitHub создаёте Pull Request (или Merge Request).
После ревью — объединяете с main.

Это даёт:

  • Безопасность: основной код не ломается.
  • Чёткость: каждая ветка — одна задача.
  • Коллаборацию: другие могут видеть вашу работу, комментировать, предлагать правки.
  • Возможность отложить: если задача не готова — вы можете закрыть ветку без влияния на проект.

Если вы работаете над двумя задачами одновременно — две ветки.
Если вы исправляете баг — ветка bugfix/....
Если вы экспериментируете — ветка experiment/....
Если вы добавляете новые фичи — ветка feature/....

Ветки — это ваша страховка.
Они бесплатны. Они не занимают места.
Используйте их всегда.