Workflow
You have dev team.
You have production, dev and test environment.
Production and Test are indetical, because what you have tested and aproved as workable product mast be cloned to production as it is.
Dev environment is needed for each developer each task separately, because each task must be tested before deploy to production.
In terms of git Production is a Master branch of repository.
Test is one branch from changes are merged with master only.
Each dev task is branch each of one can be merged into Test only.
So your workflow looks like this:
- clone repo
- create branch from Test
- switch to it
- make changes
- add them to index
- commit them
- push branch to remote
- as other devs doing same things you need to update your local
fetch and pull
- go to 2
There are may be conflicts during pushing to remote and pulling to local