在没有父目录的情况下使用git子模块

时间:2019-05-17 12:26:58

标签: git docker

我有一个git存储库A,其中包含一个子模块B。通过在Dockerfile中复制子模块目录,我正在Docker中的B内部构建项目。项目B的构建脚本需要做

git describe

但是,当子模块已从父项目中复制出来时,此方法不起作用。如果我在Docker中将A与B一起复制会起作用,但是随着每次提交中A中的.git目录都会更新,这会使Docker缓存无效,因此每次在A中进行提交时都会对B进行完全重建。有没有一种方法可以实现缓存。

2 个答案:

答案 0 :(得分:1)

  

使用不带父目录的git子模块

否,这是不可能的。子模块必须是父存储库中的目录。

git如何分辨父存储库中的文件与子模块中的文件之间的区别?

答案 1 :(得分:0)

请勿将B复制为目录-将其克隆为存储库。不是从A克隆,而是直接从B克隆:

git clone /path/to/A/subpath/to/B

git describe具有这样的克隆。