我有一个包含许多子模块的元项目。我想在某种类型的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的日志。我怎么能这样做呢?
答案 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。