Manage a big amount of Git Repositories
Switch branches/tags
Pull request Compare This branch is 6 commits behind stigkj:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

The metagit project can be used to manage a huge amount of git (or any similar distributed scm) repositories at once. For example clone all your github repositories to a folder on your new shinny machine. The Project is inspired by a article in the german LinuxMagazin 08/10 by mschilli.

The configuration is located in the main python skript `metagit’. Edit it so make it fit your needs. For more information on commands try `pydoc gmp’ to the python module documentation.

A example session:

  • List all repositories which match the regex `metagit’ and jump there. See metagit help cd for using an shell function to streamline this.
    $ metagit list metagit
     (git:hub) --> /home/cip/2009/qy03fugy/github/metagit
    $ `metagit cd metagit`
    $ echo $PWD
  • Execute a command on all repositories which matches the regex `metagit’ (here just one repo)
    $ metagit foreach metagit commit -a
    cd /home/stettberger/github/metagit; git commit  -a
    [master d6cb963] removed metagit on peer
     1 files changed, 0 insertions(+), 1 deletions(-)
  • Shortcuts for the foreach command for common tasks.
    $ metagit push metagit
    [... push ...]
  • Uploading new repositories to remote sites with only one command Hint: Set the github.token config in git for uploading to github
$ metagit upload github brand-new-project
[.. creating and pushing brand-new-project ..]


  • SSHDir Listing - find repos on a remote machine
    • With support for uploading Repos to this remote dir
  • Github Listing - find all your github repos
    • With support for uploading Repos to this remote dir
  • Gitorious Listing - find all youy Gitorius repos
  • SVNList - clone all your svn repositories with git svn
  • Use different scm system at once The default is git, but hg does also work