我已经寻找了一段时间来解决这个问题,但还没有找到我需要的东西。
我有几个Git存储库在我的Mac (osx10.6)上的一个文件夹中,我想要一个脚本或工具,它将循环通过所有的存储库,让我知道其中任何一个需要commit
。
这是我的结构
Sites
/project1
/project2
/project3
我希望该工具在Sites/project1、Sites/project2、Sites/project3中执行git status
,并让我知道其中是否有需要暂存或提交的更改或新文件。
我找到的最接近的脚本可能是可破解的is here,,但即使是那个脚本也不能运行,我得到了一个错误:
“意外标记‘`do’附近出现语法错误”
它可能是为*nix编写的。
发布于 2010-05-06 10:28:30
有一个基于Python的程序,uncommitted,听起来它完全可以做你想做的事情。目前还没有对它的git支持(只有hg和Subversion),但你可以帮助作者在他的应用中实现git支持,或者将他的想法作为如何实现你的东西(他在我链接的项目页面上记录了他的查找方法)。
发布于 2010-06-09 00:44:59
这个问题似乎已经得到了很好的回答,但在做完同样的事情后,我想提出我的两点看法。
我使用一个简单的bash脚本更接近jcordasc的答案。我只是做了一件有点不同的事情。查看git的帮助文档,您可以设置git目录和工作目录。这样就不需要'cd‘到目录了。并不是说它真的有那么大的不同。
#!/bin/bash
for gitdir in `find ./ -name .git`;
do
workdir=${gitdir%/*};
echo;
echo $workdir;
git --git-dir=$gitdir --work-tree=$workdir status;
done
显然,他在显示状态方面更先进/更干净……
发布于 2012-06-29 22:04:03
这是一个更老的问题,但我更新了jcordasc的答案,使其适用于git 1.7.7.5,我想我也可以在这里贡献它:
https://gist.github.com/3018100
这个版本接受任何一个或多个路径作为参数,并给出jcordasc在参数表示的文件树中的任何位置找到的任何git存储库的输出。它还支持检测未推送和未合并的提交。
https://stackoverflow.com/questions/2765253
复制相似问题