我的存储库中有一些文件占用了大量空间,而其余只是文本文件。因此,我决定将它们保存在单独的git存储库中,以便保持主代码库紧凑,并将其他存储库链接为git子模块。
但是,我不需要git来更新工作树,因为我已经在我的开发机器上安装了它们。我只需要主repo保持对子模块的引用。
一旦我向子模块提交并推送,我该如何更新主要repo指向子模块提交的指针?
根据我的经验,git不允许update
没有git submodule init
,并且更新工作树。
答案 0 :(得分:1)
如果我的想法正确,那么您的问题可归结为
获取子模块提交的信息而不提取文件
然而,git的机制使其无法实现。
因为没有孤立的提交信息,这些信息基于提交对象,而提交对象又基于文件。
你的机器上有这些文件,但git需要的是提交对象,而不仅仅是文件本身。
因此,在获取提交对象时,您将获得子模块的最新提交信息。没有提取提交信息的事情。
因此,如果要引用最新的子模块提交(或者更改将子模块的更改合并到主存储库中),则必须获取该子模块以获取提交信息,然后添加子模块的最新提交到主要的回购。