1MGITSTATUS(1)                                                    MGITSTATUS(1)
2
3
4

NAME

6       mgitstatus  - Show uncommitted, untracked and unpushed changes for mul‐
7       tiple Git repos.
8

SYNOPSIS

10       mgitstatus  [--version]  [-w]   [-e]   [-f]   [--throttle   SEC]   [-c]
11       [-d/--depth=2] [--flatten] [--no-X] [DIR [DIR]...]
12

DESCRIPTION

14       mgitstatus  shows uncommitted, untracked and unpushed changes in multi‐
15       ple Git repositories.  By default,  mgitstatus  scans  two  directories
16       deep.   This  can be changed with the -d (--depth) option.  If DEPTH is
17       0, the scan is infinitely deep.
18
19       mgitstatus shows:
20
21Uncommitted changes if there are unstaged or uncommitted  changes  on
22         the checked out branch.
23
24Untracked files if there are untracked files which are not ignored.
25
26Needs push (BRANCH) if the branch is tracking a (remote) branch which
27         is behind.
28
29Needs upstream (BRANCH) if a branch does not have a local  or  remote
30         upstream branch configured.  Changes in the branch may otherwise nev‐
31         er be pushed or merged.
32
33Needs pull (BRANCH) if the branch is tracking a (remote) branch which
34         is  ahead.  This requires that the local git repo already knows about
35         the remote changes (i.e. you’ve done a fetch), or  that  you  specify
36         the -f option.  mgitstatus does NOT contact the remote by default.
37
38X stashes if there are stashes.
39
40       Since  there  are a lot of different states a git repository can be in,
41       mgitstatus makes no guarantees that all states are taken into account.
42

OPTIONS

44       --version
45              Show version
46
47       -w     Warn about dirs that are not Git repositories
48
49       -e     Exclude repos that are `ok'
50
51       -f     Do a `git fetch' on each repo (slow for many repos)
52
53       --throttle SEC
54              Wait SEC seconds between each `git fetch' (-f option)
55
56       -c     Force color output (preserve colors when using pipes)
57
58       -d, --depth=2
59              Scan this many directories deep.  Default is 2.  If 0, the  scan
60              is infinitely deep
61
62       --flatten
63              Flatten  output  by only showing one status per line.  If a repo
64              has multiple statuses, multiple lines are shown for  that  repo.
65              This aids in grepability.
66
67       You can limit output with the following options:
68
69       --no-push
70              Do not show branches that need a push.
71
72       --no-pull
73              Do not show branches that need a pull.
74
75       --no-upstream
76              Do not show branches that need an upstream.
77
78       --no-uncommitted
79              Do not show branches that have unstaged or uncommitted changes.
80
81       --no-untracked
82              Do not show branches that have untracked files.
83
84       --no-stashes
85              Do now show stashes
86
87       --no-ok
88              Do now show repos that are `ok' (same as -e)
89

EXAMPLES

91       The  following  command scans two directories deep for Git projects and
92       shows their status:
93
94              $ mgitstatus
95              ./fboender/sla: ok
96              ./fboender/multi-git-status: Needs push (master) Untracked files
97              ./other/peewee: ok
98
99       To scan deeper (three dirs instead of two) in the current dir:
100
101              $ mgitstatus -d 3
102
103       The following command scans three levels deep in /opt/deploy/ and hides
104       repos that are `ok'.  It does not show stashes:
105
106              $ mgitstatus -e --no-stashes -d 3 /opt/deploy
107
108       To  ignore  a  repo, set the mgitstatus.ignore git configuration option
109       for that repo to true.  E.g.:
110
111              $ cd stupidrepo
112              $ git config --local mgitstatus.ignore true
113
114       Sort output by repo name while retaining colors:
115
116              $ mgitstatus -c | sort
117              ./ansible: ok
118              ./ansible-cmdb: Needs push (master) Uncommitted changes Untracked files
119              ./davis: ok
120              ./espy: Uncommitted changes Untracked files
121              ./garner: Untracked files
122              ./garner-chains: ok
123              ./mdpreview: ok
124
125       Sort output by repo status while retaining colors:
126
127              $ mgitstatus -c --flatten -e | sort -k2
128              ./fboender/ansible-cmdb: Uncommitted changes
129              ./fboender/espy: Uncommitted changes
130              ./fboender/multi-git-status: Uncommitted changes
131              ./fboender/ansible-cmdb: Needs push (master)
132              ./fboender/ansible-cmdb: Untracked files
133              ./fboender/espy: Untracked files
134              ./fboender/garner: Untracked files
135              ./fboender/multi-git-status: Untracked files
136
137       Force color output and flatten the output so we can grep for things:
138
139              $ mgitstatus --flatten -c | grep Uncommitted
140              ./fboender/multi-git-status: Uncommitted changes
141              ./fboender/ansible-cmdb: Uncommitted changes
142              ./fboender/espy: Uncommitted changes
143
145       Copyright 2016-2022, Ferry Boender (et al).
146
147       Licensed under the MIT license.  For  more  information,  see  the  LI‐
148       CENSE.txt file.
149

AUTHORS

151       Ferry Boender.
152
153
154
155                                   Mar 2022                      MGITSTATUS(1)
Impressum