git submodule学习

发布于:2025-02-23 ⋅ 阅读:(14) ⋅ 点赞:(0)

目录

摘要

本节主要记录git submodule相关知识欢迎批评指正!!!


1.git submodule解决问题


Git子模块(Git Submodule)主要解决了在大型软件开发中,一个项目可能依赖于其他独立的模块或第三方库的问题。


2.git submodule命令


//如果克隆的项目包含子模块,需要增加--recursive
git clone <repository> --recursive //递归的方式克隆整个项目
git submodule add <repository> <path> //添加子模块

 //初始化子模块
git submodule init

//更新子模块
git submodule update 

//拉取所有子模块
git submodule foreach git pull 

//递归克隆
git submodule update --recursive 

//同步子模块仓库地址
git submodule sync --recursive

//更新(下载)子模块
git submodule update --init --recursive

2.1git submodule添加子模块

Git 提供了 submodule 来支持子模块的需求,使用它可以很方便的将多个独立仓库包含到同一个主工程中:

$ git init
$ git submodule add http://xxx.xxx/common.git
$ git submodule add http://xxx.xxx/framework.git

2.2git submodule删除子模块

git rm --cached src/modules
rm -rf 子模块目录 删除子模块目录及源码
vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目
vi .git/config 删除配置项中子模块相关条目
rm -rf .gitmodules/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可


2.3引用子模块修改了怎么办

目前有两个库A和B,A库调用B库,现在B库修改了,并且上传远端,A本地和远端都无法感知,需要主动操作pull

//进入子库路径
//获取
git pull
//上传,这里需要注意是在子模块外面推送

如果引用多个库,这样操作太麻烦,需要执行

git submodule foreach git pull

注意远端还需要执行

git add .
git commit -m ""
git push

网站公告

今日签到

点亮在社区的每一天
去签到