Throughout my career, I’ve worked primarily on teams with continuous deployment pipelines, relying on relatively straightforward feature branching workflows. However, there are times when explicitly versioning software and deploying it through a waterfall-style model makes sense. But how does Git fit into such scenarios?
Despite having spent hundreds of hours creating an entire learning platform for Git, I was embarrassed to realize I didn't know the answer to this question.
To remedy this, I published a video about Gitflow—a Git branching model that remains widely used in certain corners of the software industry. What I didn’t expect, however, was the lively discussion it would ignite in the comments!
This exchange captures the competing opinions about Gitflow quite well. Personally, I believe that deciding whether Gitflow is the right choice depends more on the deployment model than the version control system. As waterfall development models gave way to continuous deployment, Gitflow also fell out of favor. However, that doesn’t mean Gitflow is no longer useful or that waterfall is never the best choice for a software project.
In the end, the decision is yours to make, so consider this video a simple introduction. I also recommend reading Vincent Driessen's original Gitflow blog post. It not only provides a more detailed explanation of Gitflow, but also clearly outlines its pros and cons compared to other branching models.
If this post resembles my YouTube video's comment section, I anticipate some polarization on this topic. With that in mind, I'll conclude with a comment from Vincent Driessen, the creator of Gitflow:
...always remember that panaceas don't exist. Consider your own context. Don't be hating. Decide for yourself.
Enjoy.
I attended the University of Maryland where I graduated with a bachelor's degree in Computer Science. Since then, I’ve gathered experience in the tech industry, both as a software engineer and people manager. My longest stint was 7 years at Amazon where I… read more.