将git版本控制中的子模块文件添加到主仓库中

Submitted by dravenk on Tue, 03/27/2018 - 13:17

 

一个大型项目的版本控制中,有些是由一个主项目版本库和多个子模块版本库构成,每个自模块会有单独的git版本控制。在使用composer管理工具的时候,经常是把自模块源代码包含git版本库一下下载到本地项目。由于主项目git版本库在将文件添加到版本控制中,会忽略带有.git版本库的自模块的内容。为了忽略子模块的git版本库,将子模块添加到主版本库中,可以在 .gitignore 文件中添加以下内容:

**/.git

但由于已经加入版本控制中的问题已被记录,所以往往没有达到将子模块文件添加到主版本库中。

例如,在composer.json中有以下内容:

    "config": {
        "preferred-install": "source",
    },

再执行composer require命令的时候,就会把源代码包下载到主版本控制中

 composer require drupal/taxonomy_per_user -vvv

如果此时执执行git add,程序没有将子模块加入到主版本控制中。还需要将主版本库中的子模块缓存删除:

git rm --cached modules/contrib/taxonomy_per_user -f

 

Category