如何在powershell中为每个git子模块运行命令?

时间:2013-05-01 01:28:19

标签: git powershell powershell-v2.0

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

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

这个想法是从meta repo中的每个子模块获取从最后一个分支点到HEAD的日志。我怎么能这样做呢?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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