Git删除子模块

时间:2018-10-06 11:42:23

标签: git git-submodules

我有一个包含多个子模块的共享项目。通常,当我想更新我的工作分支时,我会执行以下命令:

  compositeKey=getNewCompositeKey(partKeyValue1,partKeyValue2)
     Optional<TestEntity> existing = TestEntityRepository.findById(compositeKey);
            if (existing.isPresent()) {
                TestEntity existing1 = existing.get();
                testEntitySet.add(existing1);
                //create a new key and use findById again
                //it gives the same instance if values of fields of
               //compositeKey are same

然后更新我的子模块:

> git pull origin my_branch_name

如果有人将其添加到项目中,它将更新我的所有子模块并初始化新的子模块。

问题是该项目有很多子模块,其中一些我根本不使用,但它们在HDD上需要大量空间。当我一起更新所有子模块时,是否可以删除本地未使用的子模块并禁止git下载它们?

1 个答案:

答案 0 :(得分:0)

不要删除它们,只是不要理会它们。这是子模块价值的一部分,您无需获取或签出不需要的任何内容。

git submodule update --init --recursive是用于获取可见的每个子模块然后重复进行直到找不到更多子模块的命令。那不是您想要的,所以不要这样做。

列出需要执行的操作,并将其记录在脚本中。这就是脚本的用途,用于记录常见的命令序列。 history|awk '$2~/git|cd/'很有用,可以进行所需的任何探索,然后浏览历史记录以收集薪水。您希望最终完成一系列cd和git子模块更新,以完成所需的操作,无论如何,您都必须列出该列表,并且最好将其保留为外壳程序可用于在命令上重做的形式。