How does the Centralized Workflow work?
The Centralized Workflow is a version control workflow commonly used in Git and other version control systems, especially in environments where there is a single central repository. This workflow is straightforward and suitable for smaller development teams or projects. Here’s how the Centralized Workflow works:
- Central Repository: There is a central repository that serves as the “single source of truth” for the project. All developers interact with this central repository to share and synchronize their changes.
- Clone the Repository: Each developer starts by cloning (copying) the central repository to their local machine. This creates a local working copy of the entire project, including all branches and the complete history.
- Work on the Master Branch: Developers typically work on the “master” or “main” branch, which represents the latest stable version of the codebase. It is essential to ensure that the master branch remains in a working state, as all developers will base their changes on it.
- Pull (Update) from the Central Repository: Before starting work on a new feature or bug fix, developers should pull the latest changes from the central repository to ensure they have the most up-to-date version of the codebase.
git pull origin master
- Create a New Branch: Once the developer has the latest updates, they create a new branch to work on their specific feature or bug fix. This new branch is created from the current state of the master branch.
git checkout -b feature/new-feature
- Work on the Branch: The developer makes changes, adds new files, and commits their work to the new branch.
- Push Changes to the Central Repository: When the developer has completed their work on the feature branch and tested their changes, they push the branch to the central repository.
git push origin feature/new-feature
- Create a Pull Request (Optional): In some cases, teams use pull requests (or merge requests) to facilitate code review and collaboration. A pull request is a request to merge changes from the feature branch into the master branch. Reviewers can provide feedback, and once approved, the changes are merged into the master branch.
- Update the Master Branch: If pull requests are not used, developers can directly merge their feature branch into the master branch once the changes have been tested and approved.
git checkout master
git merge feature/new-feature
- Rinse and Repeat: Developers continue to work on new features or bug fixes in their local branches, pulling the latest changes from the central repository regularly, and pushing their changes back once completed.
The Centralized Workflow is relatively straightforward and can work well for smaller teams or projects. However, it may become less scalable and more prone to conflicts and delays as the project and the number of contributors grow. In such cases, a more advanced workflow like Gitflow or Feature Branch Workflow may be more suitable.