https://danielkummer.github.io/git-flow-cheatsheet/
brew install git-flow-avh
After a git repo has been started, initialize Git Flow
There are 5 branches that interact with one another in Git Flow:
1 | 2 | 3 | 4 | 5
Feature | Develop | Release | Master | Hotfix
gitflow
git
git flow init
git init
git commit --allow-empty -m "Initial commit"
git checkout -b develop master
After initializing Git Flow, a new develop
branch is created. This branch is what is used to control features and releases.
Connect to the remote repository
gitflow
git
N/A
git remote add origin git@github.com:MYACCOUNT/MYREPO
gitflow
git
git flow feature start MYFEATURE
git checkout -b feature/MYFEATURE develop
gitflow
git
git flow feature publish MYFEATURE
git checkout feature/MYFEATURE
git push origin feature/MYFEATURE
Get latest for a feature branch
gitflow
git
git flow feature pull origin MYFEATURE
git checkout feature/MYFEATURE
git pull --rebase origin feature/MYFEATURE
Finalize a feature branch
gitflow
git
git flow feature finish MYFEATURE
git checkout develop
git merge --no-ff feature/MYFEATURE
git branch -d feature/MYFEATURE
Push the merged feature branch
gitflow
git
N/A
git push origin develop
git push origin :feature/MYFEATURE
(if pushed)
gitflow
git
git flow release start 1.2.0
git checkout -b release/1.2.0 develop
gitflow
git
git flow release publish 1.2.0
git checkout release/1.2.0
git push origin release/1.2.0
Get latest for a release branch
gitflow
git
N/A
git checkout release/1.2.0
git pull --rebase origin release/1.2.0
Finalize a release branch
gitflow
git
git flow release finish 1.2.0
git checkout master
git merge --no-ff release/1.2.0
git tag -a 1.2.0
git checkout develop
git merge --no-ff release/1.2.0
git branch -d release/1.2.0
Push the merged feature branch
gitflow
git
N/A
git push origin master
git push origin develop
git push origin --tags
git push origin :release/1.2.0
(if pushed)
gitflow
git
git flow hotfix start 1.2.1 [commit]
git checkout -b hotfix/1.2.1 [commit]
gitflow
git
git flow hotfix finish 1.2.1
git checkout master
git merge --no-ff hotfix/1.2.1
git tag -a 1.2.1
git checkout develop
git merge --no-ff hotfix/1.2.1
git branch -d hotfix/1.2.1
Push the merged hotfix branch
gitflow
git
N/A
git push origin master
git push origin develop
git push origin --tags
git push origin :hotfix/1.2.1
(if pushed)