parent
d32923f6a3
commit
705370f43f
@ -0,0 +1,91 @@
|
|||||||
|
# Git Flow
|
||||||
|
|
||||||
|
This can be done with the git-flow extension, or without.
|
||||||
|
All examples here, are with a from scratch repo.
|
||||||
|
|
||||||
|
## Initialised
|
||||||
|
|
||||||
|
git init
|
||||||
|
git flow init
|
||||||
|
|
||||||
|
## Main/Develop
|
||||||
|
|
||||||
|
After commiting a basic README.md to the main branch
|
||||||
|
|
||||||
|
git checkout -b develop
|
||||||
|
|
||||||
|
The develop branch is where development work will be based off.
|
||||||
|
|
||||||
|
Don't work on the main/master branch.
|
||||||
|
|
||||||
|
## Feature Branch
|
||||||
|
|
||||||
|
This is where you work on features, changes, fixes\*, etc.
|
||||||
|
|
||||||
|
The develop branch will have many features, and can be by different developers
|
||||||
|
|
||||||
|
### Starting a feature branch
|
||||||
|
|
||||||
|
git checkout develop
|
||||||
|
git checkout -b feature/featureName develop
|
||||||
|
|
||||||
|
git flow feature start featureName develop
|
||||||
|
|
||||||
|
#### Working on feature
|
||||||
|
|
||||||
|
You work on feature branch like normal, just do you development, and commit changes. When the feature is complete, you merge it into the development branch.
|
||||||
|
|
||||||
|
### Finishing a feature branch
|
||||||
|
|
||||||
|
git checkout develop
|
||||||
|
git merge --no-ff feature/featureName
|
||||||
|
|
||||||
|
git flow feature finish featureName
|
||||||
|
|
||||||
|
### After feature finished
|
||||||
|
|
||||||
|
Your other features will need to be rebased onto the new develop branch.
|
||||||
|
|
||||||
|
git checkout feature/anotherFeature
|
||||||
|
git rebase develop
|
||||||
|
|
||||||
|
This can be done upon completion of the feature if you don't need anything from other features.
|
||||||
|
|
||||||
|
## Release Branch
|
||||||
|
|
||||||
|
Once a release is ready (all features for the upcoming release are complete). Then a release branch is created ready to roll out.
|
||||||
|
|
||||||
|
Release branches follow semantic versioning. Major|Minor|Fix.
|
||||||
|
|
||||||
|
### Starting a release branch
|
||||||
|
|
||||||
|
git checkout develop
|
||||||
|
git checkout -b release/0.1.0
|
||||||
|
|
||||||
|
git flow release start 0.1.0
|
||||||
|
|
||||||
|
It might be worth pushing the release branch so it can be pulled and worked on by others.
|
||||||
|
|
||||||
|
git push --set-upstream origin release/0.1.0
|
||||||
|
|
||||||
|
#### Working on release branch
|
||||||
|
|
||||||
|
If the release is staged, ready to go, but not ready to be live yet, then this is where bugfixes, etc are applied.
|
||||||
|
|
||||||
|
You will also want to change anything refering to the versin number, and rebuild caches, etc. before releasing.
|
||||||
|
|
||||||
|
### Finishing a release branch
|
||||||
|
|
||||||
|
git checkout main
|
||||||
|
git merge --no-ff release/0.1.0
|
||||||
|
|
||||||
|
git flow release finish
|
||||||
|
|
||||||
|
Make sure to push tags too
|
||||||
|
|
||||||
|
git push origin --tags
|
||||||
|
|
||||||
|
## Hotfixes
|
||||||
|
|
||||||
|
I've not got here yet
|
||||||
|
|
||||||
Loading…
Reference in New Issue