2

我目前正在编写一个小 zsh 函数来检查我所有的 git 存储库以查看它们是否脏,然后打印出需要提交的那些。到目前为止,我已经发现找出 git 存储库的干净/脏状态的最快方法是通过git-diffand git-ls-files

if ! git diff --quiet || git ls-files --others --exclude-standard; then
  state=":dirty"
fi

我有两个问题想请教各位:

  1. 有谁知道在 git repo 中检查文件更改/添加的更快、更有效的方法?
  2. 我希望我的 zsh 函数得到一个文件路径(比如~/Code/git-repos/)并检查其中的所有存储库。有没有办法不用 cd 进入每个目录并运行这些命令?像这样的东西git-diff --quiet --git-dir="~/Code/git-repos/..."会很棒。

谢谢!:)

4

1 回答 1

3

如果$DIR包含您的目录名称并且它是标准布局(即.gitdir 是$DIR/.git),那么git --git-dir $DIR/.git --work-tree $DIR status -s -uno将列出所有未提交更改的文件。检查列表是否为空应该会给你你想要的。

于 2010-05-05T19:32:16.443 回答