Skip to content

Документация по работе с GitHub

Этот документ описывает базовый рабочий процесс в репозитории Gifty: получение доступа, настройка локальной среды, правила ветвления и pull‑request.

Получение доступа

Доступ к репозиторию можно получить:

  • через запрос в телеграм‑боте,
  • либо через добавление вашим ментором.

После получения доступа проверьте, что у вас есть права на чтение и запись в репозиторий.

Настройка локальной среды

  1. Установите Git.
  2. Настройте авторство:
git config --global user.name "Ваше Имя"
git config --global user.email "you@example.com"
  1. Клонируйте репозиторий:
git clone git@github.com:IceDarold/gifty-backend.git

Если SSH недоступен, используйте HTTPS‑URL.

Структура веток

В проекте Gifty используется модель ветвления, основанная на Git Flow:

Ветка Цель Стабильность
main Production-код. Содержит только релизные версии. Locked
develop Основная ветка разработки. Сюда вливаются все фичи. Стабильная
feature/* Разработка новых фич (например, feature/ai-scoring). Экспериментальная
research/* Исследования, ML эксперименты, ноутбуки. Экспериментальная
hotfix/* Срочные фиксы для продакшена. Стабильная
docs/* Изменения в документации. Стабильная

Рабочий стандарт (Git Flow)

1. Начало работы

Все новые задачи начинаются от ветки develop:

git checkout develop
git pull origin develop
git checkout -b feature/your-task-name

2. Правила коммитов

  • Используйте понятные сообщения на английском или русском языке.
  • Старайтесь делать атомарные коммиты (одна логическая правка = один коммит).
  • Никогда не коммитьте файлы .env, секреты и приватные ключи.

3. Pull Request (PR)

  • PR всегда создается в ветку develop (кроме хотфиксов).
  • В описании PR обязательно укажите ссылку на задачу в Weeek (если есть).
  • После открытия PR запустится автоматическая проверка (GitHub Actions). Убедитесь, что тесты прошли (зеленая галочка).

4. Code Review

  • Дождитесь одобрения (Approve) хотя бы от одного коллеги или ментора.
  • После апрува используйте Rebase and Merge или обычный Merge, если иное не оговорено ментором.

5. Релизы (Main)

Вливание из develop в main происходит только при релизе новой версии и сопровождается созданием тега:

git tag -a v1.x.x -m "Release description"
git push origin --tags


Синхронизация

Если вы долго работаете над задачей, ваша ветка может устареть. Регулярно подтягивайте свежий develop:

git fetch origin
git merge origin/develop
# или git rebase origin/develop, если вы уверены в своих силах


Безопасность

Если вы случайно закоммитили секрет:

  1. Немедленно сообщите ментору.
  2. Смените скомпрометированный пароль/ключ.
  3. Не пытайтесь просто "удалить" его в следующем коммите — он останется в истории Git.