Руководство по работе с Git
Руководство по созданию Pull Request
Данное руководство описывает процесс создания Pull Request (PR) в репозиторий Orion Station 14. Следование этим правилам ускоряет ревью и снижает вероятность отклонения вашего вклада.
Подготовка
Форк и клонирование
- Перейдите на страницу репозитория и нажмите Fork.
- Склонируйте свой форк:
git clone https://github.com/ВАШ_ЛОГИН/Orion-Station-14.git
cd Orion-Station-14
- Добавьте основной репозиторий как upstream:
git remote add upstream https://github.com/M9SCO/Orion-Station-14.git
- Запустите скрипт инициализации подмодулей:
python RUN_THIS.py
Создание ветки
master. Всегда создавайте отдельную ветку под каждый PR.git checkout master
git pull upstream master
git checkout -b тип/краткое-описание
Примеры имён веток:
feature/mora-12-gravity-bike— новая фичаfix/emote-restore— исправление багаlocale/update-anonymous— изменения локализацииsprites/new-clothing— добавление спрайтовtweak/adminwho-visibility— небольшая правка
Правила оформления PR
Заголовок
Заголовок PR должен быть коротким и информативным. Используйте префикс, описывающий тип изменений:
| Префикс | Назначение | Пример |
|---|---|---|
feature: |
Новая функциональность | feature: добавить гравибайк Mora-12
|
fix: |
Исправление бага | fix: восстановить общие эмоции
|
tweak: |
Небольшая правка/балансировка | tweak: изменить урон бейсбольной биты
|
locale: |
Изменения локализации | locale: обновить анонимные имена
|
sprites: |
Добавление/изменение спрайтов | sprites: добавить спрайты гравибайка
|
refactor: |
Рефакторинг кода | refactor: вынести логику крафта в отдельную систему
|
Описание (Body)
Каждый PR обязан содержать описание. Используйте следующий шаблон:
## Что изменено Краткое описание ваших изменений (2–3 предложения). ## Зачем Причина или мотивация для данного изменения. ## Скриншоты / Медиа <!-- Если PR затрагивает визуал (спрайты, UI) — приложите скриншоты или GIF --> ## Чеклист - [ ] Я протестировал(а) изменения локально - [ ] Код собирается без ошибок - [ ] Нет конфликтов с веткой master - [ ] Изменения затрагивают только то, что заявлено в PR
Типичные ошибки
1. Дублирование PR
Если ваш PR требует доработки — обновите существующий, а не создавайте новый:
# Внесите исправления в код, затем:
git add .
git commit -m "fix: учтены замечания из ревью"
git push origin ваша-ветка
Существующий PR обновится автоматически. Создание дубликатов (как PR #9, #10, #11) засоряет историю и усложняет ревью.
2. Работа в master
Работа напрямую в master создаёт конфликты при синхронизации с upstream и не позволяет параллельно вести несколько PR.
3. Слишком большой PR
Один PR = одна логическая единица изменений. Не смешивайте в одном PR:
- Новую фичу + рефакторинг стороннего кода
- Спрайты + изменения в C#-коде (если они не связаны)
- Несколько независимых исправлений
4. Отсутствие тестирования
Перед созданием PR убедитесь, что:
- Проект собирается (
dotnet build) - Сервер запускается без ошибок
- Ваши изменения работают в игре
Процесс ревью
После создания PR происходит следующее:
- Автоматические проверки — CI/CD прогоняет сборку и тесты.
- Сортировка — мейнтейнер выставляет лейблы.
- Code Review — один или несколько мейнтейнеров проверяют код.
- Запрос изменений — если есть замечания, от вас ждут коммиты в ту же ветку.
- Мерж — после одобрения PR вливается в master.
| Что делать, если... | Решение |
|---|---|
| CI упал | Прочитайте логи сборки, исправьте ошибки, запушьте фикс в ветку PR |
| Появились конфликты | Выполните git pull upstream master и разрешите конфликты локально
|
| Долго нет ревью | Напишите мейнтейнеру в Discord / оставьте комментарий в PR |
| PR отклонили | Прочитайте причину, учтите замечания, создайте новый PR (если старый закрыт) или обновите текущий |
Работа с конфликтами
Если ваш PR конфликтует с master:
git checkout ваша-ветка
git fetch upstream
git merge upstream/master
# Разрешите конфликты в редакторе
git add .
git commit -m "merge: разрешение конфликтов с master"
git push origin ваша-ветка
git merge, а не git rebase, если вы не уверены в том, что делаете. Rebase переписывает историю и может создать проблемы при командной работе.Полезные ссылки
Краткая шпаргалка
# 1. Синхронизация с upstream
git checkout master && git pull upstream master
# 2. Создание ветки
git checkout -b feature/моя-фича
# 3. Работа и коммиты
git add файл1 файл2
git commit -m "feature: описание изменения"
# 4. Пуш и создание PR
git push origin feature/моя-фича
# → Перейдите на GitHub и нажмите "Create Pull Request"
# 5. Обновление PR после замечаний
git add .
git commit -m "fix: учтены замечания"
git push origin feature/моя-фича