I am currently the lead of my site's dev team (3 people) and we are looking into ways to incorporate git into our daily work flow.
Some requirements:
- The site must have 1 main repos. Everything commited to this repos must be approved by me only.
- Everyone works in their own computers. They will need to pull from the "main repos" make changes and then resolve conflict if they want to push
Let say there are 3 people in my team, A (I am A btw), B and C. A possible solution that I have come up with (but is kind of hackish and slow overall):
- There will be the following repos: reposA, reposB, reposC, and reposMain
- When B wants to start work, B pulls from reposMain to reposB, does work on reposB, and commit to reposB.
So when reposB thinks it's good, it merges that new_branch to reposB's master, and tell me to ssh into reposMain and pull from reposB/new_branch to reposMain/reposB_branch
All the conflicts pulled to reposB_branch would have been solved by then, then I do a diff and see if I like the change, if I like it, I will merge that into reposMain's master
Everyone pulls from reposMain when they start their workday.
For this setup, I would need to make reposMain downloadable(readable) to all my team but make it non writable to them (that can be done with chmod). The only down side is that this is a really hackish solution and requires me to explicity ssh into reposMain and do the merging etc.
Are there any errors/problems that you see with this workflow? Is there a better solution than this?