git:git modules

本文介绍如何使用Git子模块进行代码管理和共享,适用于需要将一个项目作为另一个项目的子目录的情况。文章详细解释了子模块的概念、配置文件.gitmodules的作用及如何通过配置vue.config.js方便引用子模块资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、场景

组件库、api库、多项目的公共部分提取,为微前端做基础。

二、git modules是什么

开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管理是个麻烦的事情。

子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。

三、理解git submoudle

有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。
Git 通过子模块来解决这个问题。 子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。

四、操作

​git submodule add http://XXXcommon.git(仓库地址)


五、 .gitmoudles配置

首应当注意到新的 .gitmodules 文件。 该配置文件保存了项目 URL 与已经拉取的本地目录之间的映射。

如果有多个子模块,该文件中就会有多条记录。 要重点注意的是,该文件也像 .gitignore 文件一样受到(通过)版本控制。 它会和该项目的其他部分一同被拉取推送。 这就是克隆该项目的人知道去哪获得子模块的原因。

六、vue-config.js配置alias,方便引用

build: {
    publicPath: process.env.PUBLIC_PATH,
    extractCSS: isProd,
    styleResources: {
      less: '../m-front-common/pc/assets/m-var.less',
    },
    extend(config, {
      isDev
    }) {
      const alias = (config.resolve.alias = config.resolve.alias || {})
      alias['@components'] = path.join(
        __dirname,
        'm-front-common/pc/components'
      )
      alias['@api'] = path.join(__dirname, 'm-front-common/pc/api')
      alias['@services'] = path.join(__dirname, 'm-front-common/pc/services')
      alias['@const'] = path.join(__dirname, 'm-front-common/pc/const')
      alias['@mixins'] = path.join(__dirname, 'm-front-common/pc/mixins')
      alias['@assets'] = path.join(__dirname, 'm-front-common/pc/assets')
      alias['@pc'] = path.join(__dirname, 'm-front-common/pc')
    },
  },

七、使用

八、提交代码时需要分别提交,从vscode即可看出来

九、注意

 当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:

git submodule update --init --recursive

十、欢迎交流指正

十一、 参考文献

Git - 子模块

git中submodule子模块的添加、使用和删除_guotianqing的博客-CSDN博客

微前端实现共享方式之--git submodule 使用说明 - 简书

.gitmodules详解(Git子模块配置)_杨小扬的专栏-CSDN博客

gitmodules - [ Git中文开发手册 ] - 在线原生手册 - php中文网

git submodule的使用(.gitmodules文件子模块加载)_大唐锦绣的博客-CSDN博客_gitmodules

git submodule: already exists in the index_工程人在路上的博客-CSDN博客_git submodule 已经存在于索引中

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值