git - 从裸存储库获取子模块哈希

标签 git jgit

我们有一个带有客户自定义应用程序的 gitolite 服务器。

每个应用程序都有一个子模块“存储库/核心”,它引用我们的基础应用程序。

我们现在想创建一个仪表板,显示我们所有客户的应用程序以及核心所在的版本。

gitolite 将所有内容存储在磁盘上的裸存储库中,仪表板应用程序可以直接访问存储库/或使用 ssh key ,如果这样更容易的话。

我的问题是我如何从一个裸存储库中找出子模块的修订版本,以及提交它的人?

最佳答案

我只需要为 CI 服务器实现它。棘手的部分是只保留简单的 checkout 。

我的解决方案如下:

1) git show HEAD:.gitmodules可用于获取作为子模块的路径列表。

2) 每个 path = ,第三个字段可用于确定子模块所在的 SHA:

git ls-tree -z -d HEAD -- <submodule path>

关于git - 从裸存储库获取子模块哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26018979/

相关文章:

Git 指针和 blob

git - TFS2013 - 使用 git 克隆团队项目的构建定义

git - 获取有关特定目录中行贡献的 Git 统计信息

git - 克隆 Git 存储库,以便我可以将其更新为原始版本,但将我的更改分开

git - 将子模块克隆到目录中

java - 我如何使用 JGit 找到分支的第一次提交?

java - 如何使用 Java 在 git 中进行稀疏校验

git - JGit : Rename/Copy detection using FollowFilter

maven jgitflow release-start 目标将行尾更改为 CRLF

java - 自定义 git Push ant 任务在 JGit 中不起作用