How to check the status of all git repositories at once?
You could use a for
loop that changes into each directory, does git status
and then changes back up:
for /f "tokens=*" %a in ('dir /ad /b') do cd %a & git status & cd ..
You need to double the percentages if you use this in a batch file:
for /f "tokens=*" %%a in ('dir /ad /b') do cd %%a & git status & cd ..
Edit:
As suggested by Cupcake, you could do this instead:
for /f "tokens=*" %a in ('dir /ad /b') do git --git-dir=%a/.git --work-tree=%a status
This feels like a more robust and flexible solution (e.g. you could adapt it more easily to work with a list of paths stored in a text file).
If you are a kind of a tool-guy, you could use a little helper called RepoZ I wrote recently (and still write).
I answered a quite similar question in more detail here.
Here's a screenshot from the current development stage so hopefully you can see whether it seems helpful to you or not:
If you are wondering what that strings like +45 ~403 -88
mean - they are condensed status strings telling you whether there are commits to fetch or push and whether there are added/modified/deleted files locally. More detail on the project site on GitHub