Skip to content

Instantly share code, notes, and snippets.

@asqd
Last active October 8, 2020 16:20
Show Gist options
  • Save asqd/bdc1928d51384564f38b28891083e519 to your computer and use it in GitHub Desktop.
Save asqd/bdc1928d51384564f38b28891083e519 to your computer and use it in GitHub Desktop.
git-workflow.md

Работа с репозиторием

Перед началом работы над задачей переключаемся на ветку develop

git checkout develop

Забираем свежие изменения из develop

git pull

Создаем новую ветку

git checkout -b SERP-* develop
# * - номер задачи в JIRA
# префикс SERP - для обычных задач, HF-SERP - для мелких исправлений

Во время работы над фичей не забываем коммитить изменения

git add .
git commit -m 'SERP-*:<сообщение>' # для первого коммита

Если не хотим плодить коммиты после первого, то пользуемся командой

git add .
git commit --amend

Когда завершили фичу, проверяем, что в ветке только один коммит с общим описанием изменений. Если их несколько, то пользуемся git rebase -i, подробнее можно прочитать тут

Публикуем фичу командой

git push -f origin SERP-*

Создаем пулл реквест на bitbucket и отдаем на проверку коллегам. После проверки кода, исправления ошибок и замечаний обновляем ветку и публикуем её заново

git add .
git commit --amend
git push -f origin SERP-*

Если задача закончена и код всех устраивает, проверяем нет ли новых изменений в ветке develop. Переключаемся на нее и делаем pull, ребейз и публикуем ветку

git checkout develop
git pull
git checkout SERP-*
git rebase develop
git push -f origin SERP-*

Когда фича полностью готова, закрываем пулл реквест на bitbucket и ветка попадает в develop.

Релизы

Перед релизом забираем самую свежую ветку develop. Создаем новую ветку

git checkout develop
git pull
git checkout -b release-x.x.x develop
# x.x.x - версия релиза

Тестируем ветку, если надо вносим изменения и создаем коммит.

git add .
git commit -m 'release-x.x.x:<сообщение>'
# или git commit --amend

Можно добавить метки с версией релиза

git tag -a 1.2.1
git push -f origin release-x.x.x

Публикуем ветку на bitbucket и создаем пулл реквест

git push -f origin release-x.x.x

Когда коллеги проверили пулл реквест, закрываем его на bitbucket и ветка попадает в master.

После релиза нужно забрать изменения из ветки master

git checkout master
git pull

И сделать ребейз на develop

git checkout develop
git rebase master

После ребейза публикуем develop

git push -f origin develop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment