Reputation: 2231
For my day job, I work with a team of 6. We are all web devs working on a single project. With our current git setup, we are running into all sorts of issues with conflicts and things being overwritten that are causing havoc.
Here's is our current work flow. We have our master branch on a github repo. When we push changes to it, we also push to our production server remote which makes our changes "live". This is our bread and butter.
When we have new features or bugfixes that need to be made, we create a branch based off of master so as to not include any experimental or incomplete work. When that branch is ready for testing, we push it to another branch on github which we call "develop".
It should be noted that develop (at several times in the past) has been "synched" up to have the exact same contents as master.
We are currently having problems with our develop branch.We have a few things on our production site that simply do not/can not function on develop. SO we have to may direct pushes to master, often without pushing those same changes to develop first. This eventually puts our master branch so far ahead in commits over the develop branch that when we merge a new branch based off master into develop, features that were pushed to develop but never made it into master because they were scrapped or otherwise not ready get overwritten instead of throwing conflict.
Trying to merge and synch these two branches together like this are a nightmare and sometimes come with unpredictable results.
TL;DR What I'm looking for are suggestions for a way that we can re-organize our git work flow so that things like this do not keep happening. Are there features of git available that we are not using that might specifically help with this? Or are there other solutions out there alltogether that may help with the way we deploy? Any suggestions/tips would be appreciated.
Upvotes: 0
Views: 64
Reputation: 3315
You being 6 developers projects Configuration Management should be simple.
If you are using github, bitbucket or equivalent you can consider using "Fork/Pull" workflow.
even for single branch workflow please ensure following
Upvotes: 1