Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git.

The repo command is an executable Python script that you can put anywhere in your path.


Installs Repo repo in the current directory. This creates a .repo/ directory with Git repositories for the Repo repo source code and the standard manifest files. 


Downloads new changes and updates the working files in your local environment, essentially accomplishing git fetch across all Git repositories.

If you run  repo sync without arguments, it synchronizes the files for all projects.


For the specified projects, Repo compares the local branches to the remote branches updated during the last Repo repo sync.

Repo prompts you prompts  to select one or more of the branches that haven't been uploaded for review. 

If you run repo upload without arguments, it searches all of the projects for changes to upload.


Shows outstanding changes between the commit and the working tree using git repo diff.

Code Block
$ repo diff [project-list]


The following additional environment variables are made available byby repo forall:

  • REPO_PROJECT is set to the unique name of the project.

  • REPO_PATH  is the path relative to the root of the client.

  • REPO_REMOTE is the name of the remote system from the manifest.

  • REPO_LREV is the name of the revision from the manifest, translated to a local tracking branch. Use this if you need to pass the manifest revision to a locally executed Git command.

  • REPO_RREV is the name of the revision from the manifest, exactly as written in the manifest.