如何获取项目中所有 git 个存储库头的提交 ID?

How to get the commit id of all git repository heads inside a project?

假设目录名称 ABC 是我的项目,它不是 git 存储库。 在该目录 ABC 中,我有许多目录,它们分别是 git 存储库。 我希望每个 git 存储库的头部提交 ID 都带有一个命令(repo 或 git 命令)或脚本。

提前致谢。

在Bash,

find ABC -name .git | awk '{
    cmd = "GIT_DIR="$NF" git rev-parse HEAD"
    while ( ( cmd | getline result ) > 0 ) {
        print $NF, result
    }
    close(cmd)
}'

脚本遍历ABC下的所有.git,假设它们都是git存储库,在每个存储库中运行git rev-parse HEAD以获得head提交,并打印存储库文件夹和 SHA1 值。

参考: