Gitflow hotfix backmerge into release when release exists.
Asked by Thijs Kuperus:

We where testing the Gitflow feature inside of Sourcetree yesterday and we discovered something strange.

When we finished a hotfix branch while having a release branch active, the back-merge would only merge the hotfix to master and develop.

That seems strange to us. It would make a lot of sense to merge the hotfix to master and the active release branch. The release branch would eventually merge back into the develop.

We would like to know if this is a known issue and if you have a workaround for this?


Answers:
author: Richard Senior
body: The standard git-flow workflow suggests merging the hotfix into an active release branch:

"As soon as the fix is complete, it should be merged into both `master` and `develop`**(or the current `release `** **branch)**, and `master` should be tagged with an updated version number."

[https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow?_ga=2.16085366.1512789108.1519206330-1693329055.1455752367)

The article that spawned git-flow is more explicit:

"The one exception to the rule here is that, **when a release branch currently exists, the hotfix changes need to be merged into that release branch, instead of `develop`** . Back-merging the bugfix into the release branch will eventually result in the bugfix being merged into `develop` too, when the release branch is finished. (If work in `develop` immediately requires this bugfix and cannot wait for the release branch to be finished, you may safely merge the bugfix into `develop` now already as well.)

<http://nvie.com/posts/a-successful-git-branching-model/>

I just made a quick test with git-flow outside of SourceTree and I find the same as Thijs: standard git-flow commands ignore the release branch.

Unless there are ways of telling git-flow about the release branch, I think I would just issue direct git commands to merge the hotfix in this case:

```
$ git checkout master
$ git merge --no-ff hotfix/1.1.1
$ git tag 1.1.1
$?git checkout release/1.2.0
$ git merge --no-ff hotfix/1.1.1
$ git branch -d hotix/1.1.1
```

Obviously merge conflicts are possible when merging the hotfix branch into the release branch and would need to be dealt with. As you suggest, the hotfix naturally flows back into develop when the release branch is merged.

EDIT: The standard git-flow doesn't have an option to merge into the release branch so I think the only option is to do it manually (or abandon the release branch, as suggested above).

<https://github.com/nvie/gitflow/blob/develop/git-flow-hotfix>


author: Mike Corsaro
body: edit: already answered above


author: minnsey
body: Hi.  

That is actually the standard git-flow workflow, see the section on Hotfix in <https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow>

comments: author: Thijs Kuperus
body: Hi Micheal,

It still seems strange to not merge the hotfix intro a release branch.

But what is the best practice in this kind of situation?


author: minnsey
body: I suspect you should cancel the Release branch and start that again.


Tags: git-flow

hotfix