85 lines
2.3 KiB
Markdown
85 lines
2.3 KiB
Markdown
# Git Flow
|
|
|
|
---
|
|
|
|
## Ветки
|
|
|
|
```
|
|
main # Стабильная, production-ready
|
|
develop # Интеграция фич
|
|
feature/* # Новая функция (ветвится от develop)
|
|
hotfix/* # Срочное исправление (ветвится от main)
|
|
release/* # Подготовка релиза (ветвится от develop)
|
|
```
|
|
|
|
### Когда какую ветку использовать
|
|
|
|
| Ситуация | Ветка | Цель |
|
|
|----------|-------|------|
|
|
| Начало работы над фичой | `feature/idea-analysis` | develop |
|
|
| Исправление бага в production | `hotfix/crash-on-empty` | main |
|
|
| Подготовка релиза | `release/1.2.0` | main |
|
|
| Эксперимент | `experiment/new-auth` | — |
|
|
|
|
---
|
|
|
|
## Conventional Commits
|
|
|
|
```
|
|
<тип>[optional scope]: <описание>
|
|
|
|
[optional body]
|
|
[optional footer]
|
|
```
|
|
|
|
### Типы
|
|
|
|
| Тип | Пример | Влияние на версию |
|
|
|-----|--------|-------------------|
|
|
| `feat` | `feat: add AI analysis endpoint` | MINOR |
|
|
| `fix` | `fix: handle empty idea list` | PATCH |
|
|
| `BREAKING` | `feat!: change API response format` | MAJOR |
|
|
| `docs` | `docs: update README` | — |
|
|
| `refactor` | `refactor: extract IdeaService` | — |
|
|
| `test` | `test: add smoke tests for auth` | — |
|
|
| `chore` | `chore: update dependencies` | — |
|
|
|
|
### Примеры
|
|
|
|
```
|
|
feat(api): add POST /ideas/{id}/analyze endpoint
|
|
|
|
- Celery task for async analysis
|
|
- Fallback to direct call if Celery unavailable
|
|
- Store results in AgentReport table
|
|
|
|
Closes #42
|
|
```
|
|
|
|
```
|
|
fix: validate email format on registration
|
|
|
|
BREAKING: removed support for dotless emails
|
|
```
|
|
|
|
---
|
|
|
|
## Commit Message
|
|
|
|
```
|
|
50 символов: краткое описание (императив, без точки)
|
|
|
|
72 символа: тело коммита при необходимости.
|
|
Можно писать несколько строк.
|
|
- Каждый пункт с дефиса
|
|
- Описываем ЧТО и ЗАЧЕМ, а не КАК
|
|
```
|
|
|
|
---
|
|
|
|
## [ASK] Вопросы по Git
|
|
|
|
- Git Flow или GitHub Flow? (GitHub Flow проще: main + feature/* + PR)
|
|
- Нужны ли релизные ветки? (да, если несколько версий в поддержке)
|
|
- Squash при merge? (рекомендуется: 1 PR = 1 коммит в develop)
|