介绍
为了检查git存储库的状态,可以从存储库的根目录发出qazxsw poi。
git status
如果目录由多个目录组成,例如50个git存储库
C:\path\to\git_repositories\git_repo_1>git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
也不
C:\path\to\git_repositories>dir
Directory of C:\path\to\git_repositories
.ssh
git_repo_1
...
git_repo_50
0 File(s)
51 Dir(s)
也不
C:\path\to\git_repositories>git status .
fatal: Not a git repository (or any of the parent directories): .git
能够检查所有存储库的状态
题
如何一次检查所有git存储库的状态?
您可以使用更改为每个目录的C:\path\to\git_repositories>git status ./.
fatal: Not a git repository (or any of the parent directories): .git
循环,for
然后更改备份:
git status
如果在批处理文件中使用它,则需要将百分比加倍:
for /f "tokens=*" %a in ('dir /ad /b') do cd %a & git status & cd ..
编辑:
正如Cupcake所建议的那样,你可以这样做:
for /f "tokens=*" %%a in ('dir /ad /b') do cd %%a & git status & cd ..
这感觉就像一个更健壮,更灵活的解决方案(例如,您可以更轻松地调整它以使用存储在文本文件中的路径列表)。
我去了:
for /f "tokens=*" %a in ('dir /ad /b') do git --git-dir=%a/.git --work-tree=%a status
我认为它更好,因为递归处理目录。
编辑以更清洁的方式显示回购的名称。
如果你是一个工具家伙,你可以使用我最近写的一个名为find . -name .git -execdir bash -c 'echo -en "\033[1;31m"repo: "\033[1;34m"; basename "`git rev-parse --show-toplevel`"; git status -s' \;
的小帮手(并且仍在写)。
我回答了一个RepoZ。
这是当前开发阶段的截图,希望您能看到它对您是否有帮助:
quite similar question in more detail here
如果你想知道像这样的字符串是什么意思 - 它们是精简状态字符串,告诉你是否有提交或推送提交以及是否在本地添加/修改/删除了文件。关于+45 ~403 -88
的更多细节
如果您的系统由众多Git存储库组成,那么可能是Google project site on GitHub工具创建的情况:repo
如果您发现自己编写脚本以在这些存储库上分发Git命令,则应该切换到https://code.google.com/archive/p/git-repo/。
repo
使用一个名为“manifest.xml”的(不幸的)XML文件,该文件指定工作区中的Git存储库。对于每个repo,指定应该出现哪个分支和提交;你可以使用repo
将Git存储库“固定”到特定版本,或者跟踪磁头。
如果你有一个repo
工作区
repo
然后$ repo status
会做你所要求的几乎:迭代Git回购并给你一个状态。