A console script that allows you to easily update multiple git repositories at once
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.1 KiB

gitup (the git-repo-updater)

gitup is a tool designed to pull to a large number of git repositories at once. It is smart enough to ignore projects with dirty working directories, and provides a great way to get everything up-to-date for those short periods of internet access between long periods of none.

gitup works on both OS X and Linux. You should have the latest version of git and at least Python 2.7 installed.

Installation

First:

git clone git://github.com/earwig/git-repo-updater.git
cd git-repo-updater

Then, to install for everyone:

sudo python setup.py install

...or for just yourself (make sure you have ~/.local/bin in your PATH):

python setup.py install --user

Finally, simply delete the git-repo-updater directory, and you’re done!

Usage

There are two ways to update projects: you can pass them as command arguments, or save them as “bookmarks”.

For example:

gitup ~/projects/foo ~/projects/bar ~/projects/baz

...will automatically pull to the foo, bar, and baz git repositories if their working directories are clean (to avoid merge conflicts). Additionally, you can just type:

gitup ~/projects

...to automatically update all git repositories in that directory.

To add a bookmark (or bookmarks), either of these will work:

gitup --add ~/projects/foo ~/projects/bar ~/projects/baz
gitup --add ~/projects

Then, to update (pull to) all of your bookmarks, just run gitup without args:

gitup

Deleting a bookmark is as easy as adding one:

gitup --delete ~/projects

Want to view your current bookmarks? Simple:

gitup --list

You can mix and match bookmarks and command arguments:

gitup --add ~/projects/foo ~/projects/bar
gitup ~/projects/baz            # update 'baz' only
gitup                           # update 'foo' and 'bar' only
gitup ~/projects/baz --update   # update all three!

Want to update all git projects in your current directory?

gitup .

For a list of all command arguments and abbreviations:

gitup --help

Finally, all paths can be either absolute (e.g. /path/to/project) or relative (e.g. ../my/project).