GitFlow Guidelines
GitFlow Guidelines
Hotfix branches should not be used in the current context. Their purpose is to correct issues
wherever older versions of the project are deployed. Since the same version of the project is
deployed for every client, there is no need for hotfix branches. The use of hotfix branches is
therefore forbidden.
4. Release branches
Now a new release can be started with the features developed after the intermediate release
was opened.
5. Deploy branches
NOTE: Direct commits on deploy branches are forbidden.
Whenever doing hard reset on deploy branches, the following situation may occur:
This usually occurs when commits are made on a branch without fetching changes from the
remote branch, but someone else has already pushed other changes to the same remote
branch.
This situation will also occur when hard resetting a deploy branch that was pointing to the
master branch, to a commit that is pointing to a commit in an ongoing release branch.
To fix this you need to force push your local deploy branch to origin.
CAUTION! By force pushing your local branch to the remote branch you will override all
remote tracked content. Force push should only be used on deploy branches.
6. Main branches
Whenever closing feature branches, or making commits on devel branch, make sure you have
pulled all the remote changes to your local devel branch.
To check for any remote changes, use the fetch command. If changes are present on remote
use the pull command.
Whenever you are pulling changes to a local branch, make sure you have the following option
unchecked: Commit merged changes immediately.
7. Release management
Caution! Before making any rebase operation it is recommended to create backup branches for
- Choose the commits that need to be put into the release and delete the rest
- Conflicts most probably will occur during the rebase process. These conflicts need to be
solved with the involvement of the developer
- After solving the conflicts the chosen commits will show up on the newly created branch
- Next the release needs to be hard-reset to the latest commit on the new_release branch
- Next the commits that were put on the release branch need to be removed from the develop
branch in order to avoid duplicate commits when closing the current release branch. In order to
do that the develop branch needs to be interactively rebased from the point where the current
release branch was started
- The commits that were on moved to the release branch need to be deleted
- After removing the commits and resolving the inevitable conflicts the develop branch will
contain all the commits minus the ones on release