Distributed Version Control vs. Centralized Version Control

The main difference between distributed and centralized version control systems is that when you commit, you are committing to your local copy of the repository—effectively, to your own branch. In order to share your changes with others, there is an additional set of steps you need to perform. To do this, DVCSs have two new operations: pulling changes from a remote repository and pushing changes to it.

Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble; David Farley

For example, here is a typical workflow on Bazaar:

  1. bzr pull —Get the latest updates from the remote repository.
  2. Write some code.
  3. bzr commit —Save your changes to your local repository
  4. bzr pull —Get any new updates from the remote repository.
  5. bzr merge —This will update your local working copy with the results of the merge, but will not check in the merge.
  6. bzr commit —This checks in the merge to your local repository.
  7. bzr push —Push your updates to the remote repository.