It is important to establish or select a specific workflow before starting a project to ensure all team members are aligned on how changes will be applied.
Based on your team’s workflow, there are several options for the organizational structure of your organization’s repositories. You may choose to designate one repo as the “central” repository. Organizational structure could also be based on one repository per machine, per client, or a combination of both.

Evaluating git workflows

Many workflows exist for git-managed projects. To help you evaluate the best git-based workflows for your project or team, here are some questions to consider:
How comfortable is each individual on the team with the usage of git? Will additional training be needed to bring the whole team up to speed?
Does the workflow you are considering scale with team or project size?
Is it easy to correct mistakes with this workflow?
Does the team deploy contributions into production as a single entity or are features deployed individually?

Basic workflows

Centralized workflow

The centralized workflow is the easiest workflow to adopt for teams new to git. In the centralized workflow all team members make a local clone of the central repository. They are then able to edit files and make local commits without affecting the central repository. When a developer is ready, they can push all of their local commits to the central repository.
The central repository acts as a source of truth and single point for all changes to the project. Within the central repository is the main branch where all changes are committed to. The advantage of the centralized workflow is that each developer can work independently on their code without worrying about developments upstream.
This workflow is best for smaller teams.

Advanced workflows

Feature branching

In feature branching, dedicated branches are used by developers to work on features without disturbing the main branch. Each branch is dedicated to a particular feature and should have a clear, distinctive name. Developers can edit, commit, and do pull requests on the branch until the feature is complete.
Since multiple developers may be working on the same feature, the feature branch should be pushed to the central repository. This provides both a remote backup of local changes and access to multiple team members who may be involved in the feature development.
This workflow is particularly suited for continuous integration environments because if done correctly the main branch should never be corrupted by broken code.