2

我有一个包含许多子模块的元项目。我想在某种 foreach 循环中运行以下行。

cd $subDirectory
"\n\nModule $subDirextory" >> log
git log --pretty=format:"%h%x09%an%x09%ad%x09%s" origin/${Branch}..HEAD >> log
cd ..

这个想法是为元存储库中的每个子模块获取从最后一个分支点到 HEAD 的日志。我该怎么做呢?

4

1 回答 1

3

您正在寻找的命令可能是:

git submodule foreach 'git log --pretty=format:"%h%x09%an%x09%ad%x09%s" @{u}..HEAD'

git submodule foreach将遍历所有子模块,cwd 进入它们并运行给定的命令。它还将在执行此操作之前输出每个子模块的名称。

@{u}指当前签出分支的远程跟踪分支。

我不确定的部分是在 PowerShell 中引用。上面给出的命令将在 bash 中工作。您必须确保自己将其中的部分'未经修改地传递给 git。

于 2013-05-01T01:51:10.993 回答