Simple without review process:
Online Git repository: - Branch 'master' - Branch 'working' Local Git repository: - Branch 'working'
Complex with full review process:
Online Git repository: - Branch 'master' - Branch 'working' - Branch 'working-user1' - Branch 'working-user2' - Branch 'working-user3'... Local Git repository: - Branch 'working' - Branch 'working-userN'
In the complex use models of Git, some power users may not necessarily have their branches on the online Git repository, they can push directly to online ‘working’ branch.
The full review process may slow down development. For example, user1 pushes to his branch and request user2 for a code review, but user2 is busy, thus user1 can not continue his work while waiting for the review to finish.
Which should a project manager choose?
- Single ‘working’ branch (no review process)
- Main ‘working’ branch and other working branches for all developers (with review process)
Anyway, some power users who don’t need review process can just work directly on local ‘working’ branch.