Страница находится в разработке
Каждый рабочий проект должен иметь текущую рабочую версию перед тем как будет предоставлен пользователям.
Текущую версию проекта удобно хранить в отдельном файле, например version.h, version.py и т.п. Это удобно при настройке автоматизаций (CI/CD).
Придерживаемся семантическому версионированию ПО (МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ).
МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.МИНОРНУЮ версию, когда вы добавляете новую функциональность, не нарушая обратной совместимости.ПАТЧ-версию, когда вы делаете обратно совместимые исправления.protected.merge request.v0.1.0).wip:*).
issue в GitLab, если её ещё там нет, и описать решаемую задачу (проблему). Затем, в созданном issue по задаче необходимо создать новую ветку для работы над задачей (смотри раздел "Наименование веток").git fetch && git branch -aLable) = In progress.issue.merge request) необходимо указать минимум одного коллегу в качестве ревьюера.
feature/issue-{ISSUE_ID}-* - новый функционал. Возможен вариант feature/*.bugfix/issue-{ISSUE_ID}-* - исправление багов. Возможен вариант bugfix/*.docs/issue-{ISSUE_ID}-* - для документации. Возможен вариант docs/*.chore/issue-{ISSUE_ID}-* - для прочих задач. Возможен вариант chore/*.release/v*.*.* (всегда protected).
{ISSUE_ID} - это номер после символа # выбранного вами issue (возможно потребуется открыть его на весь экран, чтобы точно его увидеть).
feat:* - был добавлен или убран исходный код (src). Код не покрыт тестами, либо тесты сломались.fix:* - был исправлен баг. Если был добавлен тест воспроизводящий этот баг, то данный коммит должен успешно проходить этот тест.refactore:* - был изменён исходный код (src), но в отличие от feat тесты проходят успешно и покрытие кода тестами не уменьшилось.perf:* - похоже на refactore, тоже изменён исходный код, но увеличена производительность.style:* - похоже на refactore, тоже изменён исходный код, но вместо "реальных" изменений внесены правки в форматировании кода.docs:* - внесены изменения в документацию и/или комментарии в коде.test:* - изменения в тестах.ci:* - изменения связанные с CI.build:* - изменения связанные с процессом сборки проекта и его зависимостями.chore:* - всё остальное...
В "своих" ветках рекомендуется делать коммиты типа wip:* (например, wip: daily save, чтобы сохранить прогресс за день. Далее можно переименовать его или откатить.
git reset HEAD^ --soft && git resetgit push origin your-branch-name --force
Аналогично коммитам.
Bug - описанная проблема считается багом, требующим решения.Hold - задача на паузе (изменились приоритеты, ожидает решения другой задачи и т.п.).In Progress - задача взята в работу.In Review - задача ожидает проверки/подтверждения.
Подлежит дополнению.
При запросе на слияние возможно возникновение конфликтов (main ветка убежала вперёд). Для решения конфликта предлагается перебазировать вашу ветку на последний коммит main ветки, решить возможные конфликты в своей ветки и затем уже повторно сделать merge request.
main можно с помощью:
git fetch && git checkout your-branch-name && git rebase maingit rebase --continuegit push --force