Git 通过submodule添加子项目/库(git仓库嵌套)

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

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

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

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

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

    它可以把另一个子项目,嵌入到当前项目。而且会非常聪明的合并这些子项目。(以后就不会有困惑了,在引用其他项目时。)

   

Git使用submodule命令:

#添加子模块:
git submodule add ~/git/libs/lib1.git libs/lib1
#git会在项目下生成.gitmodule
cat .gitmodule
[submodule "libs/lib1"]
        path = libs/lib1
        url = ~/git/libs/lib1.git
#进入libs/lib1目录
cd libs/lib1
#操作新的库lib1,看得出是lib1自己的库remote信息。
git remote -v
#进入项目根目录,初始化submodule,更新submodule(必须在根目录执行命令)
cd ../../
git submodule init
git submodule update

在 libs/lib1/ 目录下添加文档,发现新增加的子模块lib1,在git状态列表中,多了个(untracked content),并不会把lib1库下的所有改动,在git status体现出来。(方便了项目管理子模块)

像操作git一样在子模块管理git工作区。

 注: 

        如果在添加子模块后,不回到最上层主分支.忘记了调用命令:git submodule update,那么你极有可能再次把旧的submodule依赖信息提交上去,当调用命令:git commit -a


参考:

        Git 工具 - 子树合并

        Git Submodule使用完整教程


出处:https://my.oschina.net/iatbforever/blog/228914


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要更新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.csdn.net/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.csdn.net/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、付费专栏及课程。

余额充值