Git submodule添加子项目/库

本文介绍如何使用Git submodule命令管理公共代码库,包括添加、删除submodule及更新子项目内容的具体步骤。

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

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

Git归并策略

Git归并有两种策略:递归,章鱼。

1.递归策略:当分支数只有两个的时候。

2.章鱼策略:当分支数大于两个的时候。

Git会自动选择归并的方法。

3.子树策略:是Git另一种归并方法。(submodule)

它可以把另一个子项目,嵌入到当前项目。而且会非常聪明的合并这些子项目。

添加

为当前工程添加submodule,命令如下:

git submodule add 仓库地址 路径

其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下的路径。
注意:路径不能以 / 结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利 Clone)
示例:
git submodule add -f http://git.cs/Cmblife_iOS_Internal/modulesLib.git
-f 是强制的意思,一般不需要加
命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息。添加完成以后,再将子模块所在的文件夹添加到工程中即可。

删除

submodule的删除稍微麻烦点:首先,要在“.gitmodules”文件中删除相应配置信息。然后,执行“git rm –cached ”命令将子模块所在的文件从git中删除。
下载的工程带有submodule

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

git submodule update –init –recursive

即可将子模块内容下载下来后工程才不会缺少相应的文件。

要更新git子项目,你可以使用以下命令: 1. 首先,同步子模块的代码: `git submodule sync` [1] 2. 然后,使用以下命令来初始化和更新子模块的代码: - `git submodule update --init` 用于初始化子模块的版本 [1][2] - `git submodule update --remote` 用于更新子模块到最新版本 [2] 3. 如果你在父项目中做了一些更改并想要提交子模块的新版本,你可以执行以下步骤: - 使用 `git add` 命令将子模块所在文件夹添加到暂存区 [2] - 使用 `git commit -m "说明信息"` 命令提交更改 [2] - 最后,使用 `git push` 命令将更改推送到远程仓 [2] 综上所述,这些命令可以帮助你更新git子项目。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [git-github 子模块仓更新(git submodule)/gitsubmodule子模块的添加、使用和删除](https://blog.youkuaiyun.com/inthat/article/details/108416238)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [git子模块的修改和更新操作](https://blog.youkuaiyun.com/qq_28087491/article/details/122134008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值