Git Submodule的使用

Git Submodule 允许一个git仓库,作为另一个git仓库的子目录,并且保持父项目和子项目相互独立。

如果项目中包含Submodules,在pull时不会同时获取submodules的源码,需要执行本地初始化的命令,再同步远端submodule源码。
git submodule init     //初始化本地.gitmodules文件
git submodule update   ///同步远端submodule源码

//或者使用组合指令
git submodule update --init --recursive

如果希望clone 的时候包含所有submodules,可以使用下面的命令

git clone --recurse-submodules <url>
子仓库创建

新建一个父仓库main,一个子仓库sub。
将父仓库克隆到本地。

git clone ssh

进入父仓库,并添加子仓库。

git submodule add ssh

添加成功后,在父仓库根目录增加了.gitmodule文件,并且在父仓库的git 配置文件中加入了submodule段。

[submodule "sub"]
    path = lib
    url = ssh://git@xxxx.git
子仓库更新

添加子仓库之后,主仓库的对应目录下,并不是sub仓库的文件,而是对应的commit id
在子仓库,切换到master分支,并git pull最新代码之后,回到主仓库目录,会显示子仓库修改,需要在主仓库提交修改,即修改指定的commit id。
如果在本地修改子仓库,需要先在子仓库提交,然后再到主仓库提交代码。

子仓库删除

删除.gitsubmodule里相关部分
删除.git/config 文件里相关字段
删除子仓库目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git submoduleGit 的一个功能,可以将一个 Git 仓库作为另一个 Git 仓库的子目录进行管理。通过使用子模块,我们可以在一个 Git 仓库中使用另一个 Git 仓库的组件。 使用 git submodule 的步骤如下: 1. 在父项目中添加子模块:使用命令 `git submodule add <子模块仓库地址> <子模块存放路径>` 将子模块添加到父项目中。 2. 克隆子模块:使用命令 `git submodule init` 初始化子模块,然后使用命令 `git submodule update` 克隆子模块的内容。 3. 切换到子模块分支:通过 `cd <子模块路径>` 进入子模块目录,然后使用 `git checkout <分支名>` 切换到子模块所在的特定分支。 4. 更新子模块:在父项目中使用命令 `git submodule update --remote` 可以更新子模块为最新的提交。 5. 提交子模块修改:在父项目中修改了子模块后,需要切换到子模块目录,进行提交和推送操作。 使用子模块的好处是可以将子项目作为独立的仓库进行开发和维护,同时在父项目中方便地使用和更新子模块。使用子模块可以实现项目的模块化和复用,提高代码的可维护性和可重用性。 需要注意的是,使用子模块时需要注意子模块的分支和版本控制,因为子模块可能会更新,需要及时更新父项目中的子模块。同时,在多人协作开发中,也需要注意在提交父项目时确保子模块的修改也已经提交。 总之,使用 Git submodule 可以方便地在父项目中使用子模块的组件,提高代码管理的灵活性和可重用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值