Правила ведения репозитория - PugachA/UnmannedAerialVehicle GitHub Wiki

Система защиты веток

Репозитории находится две бесконечно живущие ветки master и develop. Эти ветки защищены от прямого push изменения в них можно внести только через Pull Request (далее PR).

Система ветвления

  • master - самая главная ветка, в ней находится продакшен код, который полностью работоспособен и в данный момент находится на борте UAV

  • develop - ветка тестового стенда, на которой должен находятся полностью работающий код, проходящий тестирование, но еще не доросший до релиза в master. Все новый изменения должны сначала пройти через эту ветку, а потом попасть в master

  • feature - ветка новых функциональностей. Предназначена для параллельной разработки над проектов при добавлении новой функциональности. Может создаваться из develop и вливаться в develop. Стиль названия : feature/[кратное-описание-новой-функции] (Пример : feature/add-new-fligth-mode)

  • release - подготовка к новой версии продакшена. Создается из develop сливается в master и в develop. В ней идут незначительные доработки кода и последняя подготовка в новой версии. Стиль названия : release/[номер версии] (Пример : release/1.0.0)

  • support - поддержка старого функционала. Например при выходе новой версии библиотеки, которая используется в проекте. Начинается из develop вливается в develop Стиль названия : support/[краткое-описание-изменений] (Пример : support/modify-lib-version)

  • hotfix - исправление серьезных багов в коде. Предназначена для срочных изменений, которые требуются сразу в masterе. Начинается из master заканчивается в master Стиль названия : hotfix/[краткое-описание-бага] (Пример : hotfix/fix-null-exception)

Удобное визуальное представление.

Система ветвления

Также можно почитать Статья на Хабре

Quick start

Для начала работы с кодом нужно скопировать репозиторий себе на локаль:

git clone https://github.com/PugachA/UnmannedAerialVehicle.git

Для любых изменений нужно создать ветку. Не забудь перед началом создании ветки сделать git pull

git checkout -b feature/add-new-mode

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

git status

Если согласны со всеми изменениями (добавляем все)

git add .

Выборочная добавка

git add <имя файла>

Фиксируем изменения

git commit -m "Сообщение коммита"

Помни! Коммит должен содержать одно логическое изменение. Нужно стараться делать как можно больше коммит с меньшим количеством изменений. После того как закончил изменения нужно отправить изменения на удаленный репозиторий.

Структура коммита смотри пример

<Основная мысль коммита>

<Дополнительная информация>
<Дополнительная информация>
git push

Когда ты завершил свои изменения нужно отправить на review через PR. Делается этого через web-интерфейс GitHubа.

Некоторые вспомогательные команды

Смена ветки

git checkout <имя ветки>

Отмена незафиксированных изменений

git reset --hard HEAD

Удаление локальной ветки

git branch -d <имя_ветки>

Посмотреть коммиты

git log
git glog

Прятанье (stash)

Чтобы спрятать все текущие незафиксированные изменения

git stash

Посмотреть список спрятанных изменений

git stash --list

Применить последнее спрятанное изменение

git stash apply 

Применить любое спрятанное изменение

git stash apply stash@{1}
⚠️ **GitHub.com Fallback** ⚠️