git:git modules

简介: git:git modules

一、场景

组件库、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 已经存在于索引中

十一、欢迎留言指正,留言必回

相关文章
|
12月前
|
开发工具 git
Git添加子模块(submodule)
Git添加子模块(submodule)
600 0
|
2月前
|
开发工具 git
深入理解Git中的git pull和git fetch命令
深入理解Git中的git pull和git fetch命令
87 0
|
3月前
|
开发工具 git 开发者
Git Fetch 和 Git Pull:理解两者的区别
【8月更文挑战第27天】
317 1
|
6月前
|
项目管理 开发工具 git
「译文」Git subtree: Git submodule 的替代品
「译文」Git subtree: Git submodule 的替代品
「译文」Git subtree: Git submodule 的替代品
|
6月前
|
存储 开发工具 git
将 git 仓库从 submodule 转换为 subtree
将 git 仓库从 submodule 转换为 subtree
|
存储 JavaScript 前端开发
深入理解 Git submodules
深入理解 Git submodules
491 0
深入理解 Git submodules
|
程序员 开发工具 git
|
存储 安全 开发工具
git pull命令与git featch命令的区别
git pull命令与git featch命令的区别
287 0
git pull命令与git featch命令的区别
|
存储 缓存 开发工具
8. git-submodule 子模块
Git Submodule 允许一个 git 仓库,作为另一个 git 仓库的子目录,并且保持父项目和子项目相互独立。 父项目:外层项目 子项目:里面的项目。
311 0
|
Java 应用服务中间件 Linux
Consul Config 使用Git做版本控制的实现
Spring Cloud Config 原理 我们通过git 把配置文件推送到远程仓库做版本控制,当版本发生变化的时候,远程仓库通过webhook机制推送消息给 Config Server,Config Server 将修改通知发送到消息总线,然后所有的Config Client 进行配置刷新。
2206 0