Last active
August 10, 2018 09:36
-
-
Save kirevdokimov/443617d5ffa1aa7d6efd559c7e870f7a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- Основные ветки -------------------------------- | |
master - production-ready ветка | |
develop - все изданные изменения (фичи и хотфиксы) | |
--- Вспомогательные ветви ------------------------- | |
--- Feature --------------------------------------- | |
feature branch - существует для добавления новой фичи | |
#Создать | |
git checkout -b myfeature develop | |
# Слить, удалить | |
git checkout develop | |
git merge --no-ff myfeature | |
git branch -d myfeature | |
git push origin develop | |
--------------------------------------------------- | |
--- Release --------------------------------------- | |
release-* | |
Новую ветку релиза надо порождать в тот момент, | |
когда состояние ветви разработки полностью или почти полностью | |
соответствует требованиям, соответствующим новому релизу. | |
# Создание ветви релиза | |
git checkout -b release-1.2 develop | |
./bump-version.sh 1.2 | |
git commit -a -m "Bumped version number to 1.2" | |
В нашем примере bump-version.sh — это вымышленный скрипт, | |
который изменяет некоторые файлы в рабочей копии, записывая в них новую версию. | |
Вливание новых фич запрещено, разрешены только фиксы. | |
Когда мы уверены, что версия production-ready | |
# Слияние в мастера | |
git checkout master | |
git merge --no-ff release-1.2 | |
git tag -a 1.2 | |
# Чтобы сохранить изменения для последующих версий (хотфиксы, я полагаю), сливаем в develop | |
git checkout develop | |
git merge --no-ff release-1.2 | |
# Удаляем ветку за ненадобностью | |
git branch -d release-1.2 | |
--------------------------------------------------- | |
--- Hotfix ---------------------------------------- | |
hotix-* | |
Создаются из главной ветки, когда обнаруживается серьезный баг, | |
но develop недостаточно стабильный, чтобы выпускать новый релиз | |
# Ошибка в версии 1.2. Создаем ветку | |
git checkout -b hotfix-1.2.1 master | |
#Не забываем обновлять версию | |
./bump-version.sh 1.2.1 | |
git commit -a -m "Bumped version number to 1.2.1" | |
# Фиксим проблему | |
git commit -m "Fixed severe production problem" | |
# Если на этот момент существует релиз версия, то сливать нужно в неё и релизить, как я понимаю. | |
# Сливаем в мастера | |
git checkout master | |
git merge --no-ff hotfix-1.2.1 | |
git tag -a 1.2.1 | |
# Сливаем в develop, чтобы быть уверренными, что фикс будет в следующих версиях | |
git checkout develop | |
git merge --no-ff hotfix-1.2.1 | |
--------------------------------------------------- | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment