【问题标题】:How to get the commit id of all git repository heads inside a project?如何获取项目内所有 git 存储库头的提交 ID?
【发布时间】:2020-09-22 17:07:19
【问题描述】:

假设目录名称 ABC 是我的项目,它不是 git 存储库。 在那个目录 ABC 里面我有很多目录,它们分别是 git 存储库。 我希望每个 git 存储库的提交 id 都带有一个命令(repo 或 git 命令)或脚本。

提前致谢。

【问题讨论】:

    标签: git shell command repo


    【解决方案1】:

    在 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以获取头部提交,并打印存储库文件夹和SHA1值。

    参考:https://stackoverflow.com/a/55278818/6330106

    【讨论】:

    • 如果某个目录分别嵌套和存储库怎么办?实际上 ABC 中的一些子目录是嵌套目录,也是存储库。
    猜你喜欢
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 2018-08-06
    • 1970-01-01
    • 2014-10-23
    • 2011-01-01
    相关资源
    最近更新 更多