在多个存储库上运行git gc

lin*_*ize 13 git bash

我有一个git存储库根目录 /git

路径的深度不同,例如:

/git/project/project1/module1.git
/git/project/project1/module2.git
/git/project/project2/dev/module1.git
/git/library/libgit2.git
/git/library/jquery/jquery.git
Run Code Online (Sandbox Code Playgroud)

如何git gc在所有repos里面递归运行/git

我更喜欢使用shell脚本来迭代存储库:如果该目录不是有效的git存储库,请不要运行git gc.

小智 33

你可以尝试类似的东西:

find /git -name '*.git' -execdir sh -c 'cd {} && git gc' \;
Run Code Online (Sandbox Code Playgroud)

这将找到匹配*.git在其中/git,cd进入和运行的每个目录git gc.