I work in web development and the team I work on is growing so I see the need to hammer out a more formal Git workflow. We have a process down that is working for now but it's starting to cause more problems than it solves.
Currently, we work off of a
master branch. The
dev branch is checked out to our
master to our
test environment, and our prod environment is checked out to a tag from
I've been reading up on Gitflow and a common theme is checking out feature branches from the
Our team tends to have a number of irons in the fire at one time, each with different timelines and can't necessarily follow a regular release schedule at this time. If Developer A checked out a new feature branch from
dev, made a quick fix, received approval, and pushed up to
master, then deployed to prod there's a good chance they'd unintentionally deploy code from Developer B that was being reviewed on the
To avoid this, our general practice has been to create feature branches off of
master as it's always reflective of what's on production. Then, merge them into
dev for review, then up to
master once approved.
A frequent thorn in my side is that over time the
dev environment gets "messy" due to its sandbox nature and will occasionally have abandoned features or tests that are left there and not necessarily cleaned up.
How can we improve this process? Is there a better workflow or process we should look into?