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

8

我有一个元项目,其中包含多个子模块。我想在某种foreach循环内运行以下代码:

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

这个想法是获取元仓库中每个子模块从最后一个分支点到HEAD的日志。我该如何操作?

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
8
您要查找的命令可能是:

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

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

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

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


d= (◕‿↼ ) 这个可以用!但对于 git reset 可能不适用,请参见:https://dev59.com/pWgv5IYBdhLWcg3wBMOg#27415757 - Top-Master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,