Skip to main content

Command Palette

Search for a command to run...

[Git] git submodule 项目形式

Published
1 min readView as Markdown
[Git] git submodule 项目形式

简介

个人感觉 git submodule 是一种相对于 monorepo 的多模块项目管理方式

对于一些可能在多个仓库/业务中复用的模块,可以考虑将其拆出来单独放到一个仓库中,通过 git submodule 的方式引入

一些通用的非业务代码,例如配置文件、 proto 、统一的类型声明文件等,比较适合拆成 git submodule

用法

参考文档:https://git-scm.com/book/en/v2/Git-Tools-Submodules

初次拉取 git submodule

使用 git submodule update --init 拉取,git 会根据 .gitmodules 文件将远程仓库拉取为 submodule

更新 git submodule

  1. 可以在主仓库中使用 git pull ,会自动递归拉取所有的子模块,并将子模块的引用更新到远程仓库的最新引用:

  2. 在主仓库中执行 git submodule update --remote ,也会将子模块的引用更新到远程仓库的最新引用

  3. 如果在执行了 git submodule update --remote 后出现了冲突,那么你可能需要 git submodule update --remote --rebase 来在 rebase 的过程中手动解决冲突(或者用 merge):

在主仓库中提交 git submodule 的变更

当使用了 git submodule 后,每次更新仓库的远程引用(通过 fetch)时,都会显示 submodule 的变更

需要你在主仓库中去将这些子模块都添加到暂存区中,然后提交

More from this blog

[Vite] 处理静态资源路径

静态资源路径的种类 从路径的格式上来说,vite 的静态资源路径有两种:相对路径 和 绝对路径 从路径的类型上来说,vite 的静态资源路径有两种:基于 http URL 的 和 基于文件系统的 相对路径 在 vite 文档的表述中,相对路径常用于在 “嵌入式” 的页面中使用: 这里的 “嵌入式” 指的是例如浏览器插件这种,将一个页面嵌入到一个网页中的形式 绝对路径 绝对路径指的是 “以根路径为起点” 而表示的路径 绝对路径在 “基于 http URL” 和 “基于文件系统” 的情况下,最终表...

Oct 2, 20251 min read

[Node] Mac m 芯片使用 node 14

最近在 m 芯片的 mac 电脑上使用 node 14 版本,遇到了芯片架构不兼容的错误,所以记录一下解决问题的过程 遇到的问题 原因是 node 14 版本只支持 x86_64 架构的芯片,所以使用 arm 架构的 m 芯片就会报错 解决方案 前置知识 在 m 芯片的 mac 上,node 16 及以上的版本全面支持了 arm 芯片架构;如果要安装 16 以下的版本,需要通过 Rosetta 2 转译执行 步骤 按照 nvm 官方的步骤进行:https://github.com/nvm-sh/...

Jul 11, 20251 min read
[Node] Mac m 芯片使用 node 14

[其他] WSL Interop

最近在 wsl 下使用 code <dir> 命令拉起 windows 下的 vscode 客户端时,遇到了错误,搜了一下发现是 wsl 和 windows 的互操作出现了问题 这篇文章就来记录一下遇到的问题和相关的知识点 WSLInterop.conf 文件 WSLInterop.conf 文件是 WSL(Windows Subsystem for Linux)中的一个关键配置文件,它定义了 Linux 系统如何识别和处理 Windows 可执行文件 文件位置和基本作用 这个文件通常位于 /u...

Jul 11, 20252 min read
[其他] WSL Interop

lordmoon's blog

25 posts