Just in case I make mistakes, sorry for my English :). I am trying to learn how to use VCS in a big team project, what are the different approaches to it. Can you help me find information about that, because all I find is just a description of functions to different VCS systems. I need more practical knowledge, like what king of branches to create, how correlate roles in the team with access restrictions for the VCS. I would appreciate any kind of help. Thanks in advance! :)
2 Answers
This is a quite broad question and I think it depends on your organization/teams.
Normally in big projects, there is one main storage, from there a lot of variations can be made, like:
- a new branch per release, this makes it possible to do bug fixes on specific releases.
- branches per customer (in case this is needed)
- development branches (each developer/team has its own branch). After finishing they deliver to the main branch*.
- integration branches, in where parts can be tested before adding it to the main release.
*developers typically can create development branches; integrator integration branches. The test team decide when to deliver to the main branch.
However, multiple variations can be used ... when in doubt: begin simple and create new branches when there is a practical need for. Every branch means a lot of overhead.

- 15,025
- 28
- 93
- 119
Take a look at this workflow: http://nvie.com/posts/a-successful-git-branching-model/
I used that one in one of my projects but beware with a VC like git and all other DVC you will have merge conflicts popping up. Ultra annoying and a disadvantage but the advantages are bigger...
This one looks also good. https://www.atlassian.com/git/tutorials/comparing-workflows/centralized-workflow
If you have more questions feel free to ask

- 1,145
- 2
- 20
- 35