我正在编写一个小zsh函数,它检查我的所有git存储库,看看它们是否脏,然后打印出需要提交的那些。到目前为止,我已经发现找出git存储库的干净/脏状态的最快方法是通过git-diff
和git-ls-files
:
if ! git diff --quiet || git ls-files --others --exclude-standard; then
state=":dirty"
fi
我有两个问题要问你们:
~/Code/git-repos/
)并检查其中的所有存储库。有没有办法不必cd进入每个目录并运行这些命令?像git-diff --quiet --git-dir="~/Code/git-repos/..."
这样的东西太棒了。谢谢! :)
答案 0 :(得分:3)
如果$DIR
包含您的目录名称并且它是标准布局(即.git
目录是$DIR/.git
),则git --git-dir $DIR/.git --work-tree $DIR status -s -uno
将列出所有未提交更改的文件。检查列表是否为空应该可以提供您想要的内容。