PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Как коммитишь код?

Продвинутые темы

Код коммитят: `git add` (индексирование изменений) → `git commit -m "сообщение"` (создать коммит) → `git push` (отправить). С осмысленными сообщениями (Conventional Commits) и атомарными коммитами.

Базовый процесс

git status              # посмотреть изменения
git add .               # проиндексировать (или конкретные файлы)
git commit -m "feat: добавить авторизацию"
git push origin feature-branch

Хорошие практики

Атомарные коммиты

Один коммит — одно логическое изменение (не мешать разные задачи):

git add auth.js
git commit -m "feat: add login"
git add styles.css
git commit -m "style: update button"

Осмысленные сообщения (Conventional Commits)

feat: новая функциональность
fix: исправление бага
refactor: рефакторинг
docs: документация
test: тесты
chore: рутина (зависимости, конфиг)

Проверка перед коммитом

  • Линтер/тесты (часто автоматически через pre-commit хуки — Husky + lint-staged).
  • Не коммитить console.log, секреты, закомментированный код.

Селективное индексирование

git add -p             # выбрать конкретные изменения (по частям)

Полезные команды

  • git commit -am "..." — add + commit для отслеживаемых файлов.
  • git commit --amend — изменить последний коммит.
  • git diff --staged — проверить, что закоммитится.

В ветках

Работать в feature-ветке, не в main:

git checkout -b feature/login
# коммиты
git push origin feature/login
# → Pull Request с ревью

Коротко для собеседования

Коммитят: git add (индексирование) → git commit -m "..." → git push. Практики: атомарные коммиты (одно логическое изменение), осмысленные сообщения (Conventional Commits — feat:/fix:), проверка перед коммитом (линтер/тесты через pre-commit хуки), не коммитить секреты/console.log, работа в feature-ветке с последующим PR. git add -p для селективного индексирования.

Другие вопросы раздела