Merge a branch with Git Flow keeping the branch still alive

Stefano Ortisi picture Stefano Ortisi · May 8, 2013 · Viewed 9.2k times · Source

I'm starting using git flow and I understand that doing:

git flow feature start my-feature
git flow feature finish my-feature

I create a feature and then, when i've finished my changes, I merge it with the develop branch. The finish flow command literally delete the feature branch after the merge action.

My question is: is there any way using git flow to merge my feature with develop without deleting it after merge.

And my second question would be: is this workflow correct? I mean, is it right keeping alive feature branches while merging with develop, just to update the 'main' branch with some changes and keeping to work on the feature branch?

Answer

Daniel Hilgarth picture Daniel Hilgarth · May 8, 2013

Simply use git flow feature finish -k my-feature

Reference: https://github.com/nvie/gitflow/wiki/Command-Line-Arguments

About your second question:

You normally don't merge feature branches repeatedly into develop. You merge develop into the feature branches (i.e. the other way around) or rebase the feature branches onto the HEAD of develop (recommended). The only time when you merge a feature branch into develop is when you finished the development of the feature.
If you merge feature branches into develop you completely remove the benefit of having a feature branch and you just could have developed directly on develop.
If you feel you have the need to merge from a feature branch into develop you most likely made changes that are not directly related to that specific feature and should have been made in develop in the first place.