One of the great things about “GitFlow” methodology is that it makes parallel development very easy, by isolating new development from finished work. New development (such as features and non-emergency bug fixes) is done in
feature branches, and is only merged back into main body of code when the developers and testers are satisfied that the code is ready for release.
Feature branches also make it easier for two or more developers to collaborate on the same feature, because each feature branch is a sandbox where the only changes are the changes necessary to get the new feature working. That makes it very easy to see and follow what each collaborator is doing.
As new development is completed, it gets merged back into the develop branch, which is a staging area for all completed features that haven’t yet been released. So when the next release is branched off of develop, it will automatically
contain all of the new stuff that has been finished.
GitFlow supports hotfix branches – branches made from a tagged release. You can use these to make an emergency change, safe in the knowledge that the hotfix will only contain your emergency fix. There’s no risk that you’ll accidentally merge in new development at the same time. To facilitate this we using Jenkins which is software that allows continuous integration. Jenkins is installed where the central build will take the very cumbersome process most people have in process today. The following flowchart