Show uncommitted, untracked and unpushed changes for multiple Git repos
Show uncommitted, untracked and unpushed changes in multiple Git repositories. Scan for .git dirs up to DEPTH directories deep. The default is 2. If DEPTH is 0, the scan is infinitely deep.
mgitstatus shows:
fetch
), or that you specify the -f
option.
mgitstatus does NOT contact the remote by default.Since there are a lot of different states a git repository can be in, mgitstatus makes no guarantees that all states are taken into account.
mgitstatus can also list dirs that are not a repo, if given the -w
switch. To ignore certain repos, set the mgitstatus.ignore
git config flag
for that repo to true
. (See "usage" below for an example).
Usage: mgitstatus [--version] [-w] [-e] [-f] [--throttle SEC] [-c] [-d/--depth=2] [--flatten] [--no-X] [DIR [DIR]...]
mgitstatus shows uncommitted, untracked and unpushed changes in multiple Git
repositories. By default, mgitstatus scans two directories deep. This can be
changed with the -d (--depth) option. If DEPTH is 0, the scan is infinitely
deep.
--version Show version
-w Warn about dirs that are not Git repositories
-e Exclude repos that are 'ok'
-f Do a 'git fetch' on each repo (slow for many repos)
--throttle SEC Wait SEC seconds between each 'git fetch' (-f option)
-c Force color output (preserve colors when using pipes)
-d, --depth=2 Scan this many directories deep
--flatten Show only one status per line
You can limit output with the following options:
--no-push
--no-pull
--no-upstream
--no-uncommitted
--no-untracked
--no-stashes
--no-ok (same as -e)
The following example scans all directories under the current dir, with a depth of 2. That means the current dir and all directories directly under it.
~/Projects/fboender $ mgitstatus
./mgitstatus: ok
./mdpreview: ok
./snippets: ok
./boxes: ok
./ansible-cmdb: Uncommitted changes Untracked files
./scriptform: Uncommitted changes
For more examples, see the manual page.
mgitstatus requires make.
The following steps will install mgitstatus:
# Clone the repo
$ git clone https://github.com/fboender/multi-git-status.git
$ cd multi-git-status
# Install globally (all users)
$ sudo make install
# Install locally (only your user)
$ PREFIX=~/.local make install
Copyright 2016-2022, Ferry Boender (et al).
Licensed under the MIT license. For more information, see the LICENSE.txt file.