| So let me get this straight. He is suggesting to use 90% of what GitFlow suggests (feature/hotfix/release branches) but doesn't like the suggestion of non-fast-forward merge and master/Dev and that makes GitFlow harmful? I don't think I agree. I think having the Dev branch is useful. Consider this actual scenario at my current workplace. 1. We have 4 developers. Nature of the project is such that we can all work independently on different features/changes. 2. We have Production/QA/Dev environment. 3. When we are working on our individual features, we do the work in individual branches and merge in to Dev branch (which is continuously deployed).This lets us know of potential code conflicts between developers in advance. 4. When a particular feature is 'developer tested', he/she merges it into a rolling release branch (Release-1.1, Release-1.2 etc) and this is continuously deployed to QA environment. Business user does their testing in QA environment and provides sign off. 5. We deploy the artifacts of the signed off release branch to Production and then merge it in to the master and tag it. Without the development branch, the only place to find out code conflicts will be in the release branch. I and others on my team personally prefer the early feedback we can get thanks to the development branch. Advantages of an explicit merge commit: 1. Creating the merge commit makes it trivial to revert your merge. [Yes, I know it is possible to revert the merge but it's not exactly a one step process.] 2. Being able to visually see that set of commits belongs to a feature branch. This is more important to me (and my team) than a 'linear history' that the author loves. We have diverted from GitFlow in only one way, we create all feature/release/bugfix branches from 'master' and not 'develop'. Now, don't get me wrong, GitFlow is not simple but it's not as complicated as author seems to suggest. I think the author was better served with article title like 'What I don't like in GitFlow'. |