earwig/git-repo-updater
earwig/git-repo-updater has 843 GitHub stars and 91 forks. GitHot measured 0 stars in 24 hours, 0 in 7 days, and 0 in 15 days. Last checked 2026-11-09 18:53 UTC. Last push 2026-11-01.
A console script that allows you to easily update multiple git repositories at once
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- 0
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Originalgitup (the git-repo-updater)
gitup is a tool for updating multiple git repositories at once. It is smart enough to handle several remotes, dirty working directories, diverged local branches, detached HEADs, and more. It was originally created to manage a large collection of projects and deal with sporadic internet access.
gitup works on macOS, Linux, and Windows. You should have a recent version of git and Python 3.10+ installed.
Installation
With uv:
uv tool install gitup
With pipx:
pipx install gitup
With pip:
pip install gitup
With Homebrew:
brew install gitup
Usage
There are two ways to update repos: you can pass them as command arguments, or save them as "bookmarks".
For example:
gitup ~/repos/foo ~/repos/bar ~/repos/baz
will automatically pull to the foo, bar, and baz git repositories.
Additionally, you can just type:
gitup ~/repos
to automatically update all git repositories in that directory.
To add bookmarks, either of these will work:
gitup --add ~/repos/foo ~/repos/bar ~/repos/baz
gitup --add ~/repos
Then, to update all of your bookmarks, just run gitup without args:
gitup
Delete a bookmark:
gitup --delete ~/repos
View your current bookmarks:
gitup --list
You can mix and match bookmarks and command arguments:
gitup --add ~/repos/foo ~/repos/bar
gitup ~/repos/baz # update 'baz' only
gitup # update 'foo' and 'bar' only
gitup ~/repos/baz --update # update all three!
Update all git repositories in your current directory:
gitup .
You can control how deep gitup will look for repositories in a given directory,
if that directory is not a git repo by itself, with the --depth (or -t)
option. --depth 0 will disable recursion entirely, meaning the provided paths
must be repos by themselves. --depth 1 will descend one level (this is the
old behavior from pre-0.5 gitup). --depth -1 will recurse indefinitely,
which is not recommended. The default is --depth 3.
By default, gitup will fetch all remotes in a repository. Pass --current-only
(or -c) to make it fetch only the remote tracked by the current branch.
Also by default, gitup will try to fast-forward all branches that have
upstreams configured. It will always skip branches where this is not possible
(e.g. dirty working directory or a merge/rebase is required). Pass
--fetch-only (or -f) to skip this step and only fetch remotes.
After fetching, gitup will keep remote-tracking branches that no longer exist
upstream. Pass --prune (or -p) to delete them, or set fetch.prune or
remote.<name>.prune in your git config to do this by default.
For a full list of all command arguments and abbreviations:
gitup --help
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,398 starspublic-apis/public-apis
A collective list of free APIs
497,679 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
447,495 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,261 stars