git 子仓库(submodule)操作

1、在主仓库添加子仓库:

        直接在主仓库路径下clone子仓库代码,如我的主仓库是test_git_master,clone到src/perception路径,clone完用git status查看,会提示有修改:

        此时如果执行git add .  命令,会提示我们这修改和submodule相关;

         将该子仓库加入主仓库:

git init   #初始化一个git 本地仓库

git submodule  add  <sub_git_url>  相对路径    # <sub_git_url> :子仓库git地址   相对路径:子仓库.git相对于当前的路径, 
#如我的是git submodule add http://192.168.1.000:8081/zhangsan/test_git.git src/perception/test_git

git commit -m "commit msg"

git push 

         此时再刷新gitlab网站,能看到子仓库已经被添加进去了

2、在主仓库里的子仓库进行修改并提交

        在子仓库做一些修改,然后提交到子仓库,并在主仓库进行更新,子仓库有自己的工作区和.git目录,首先需要提交、推送子模块的更改:

cd path/to/submodule # 此处cd到子仓库目录下
git add .
git commit -m "msg"
git push

        然后主仓库来跟踪更新:

cd /main_project  #我的是test_git_master
git add path/to/submodule      #比如git add src/perception/test_git
git commit -m "msg"
git push

         此时刷新子仓库与主仓库gitlab网址,能发现它俩都被更新;

3、主仓库更新其他地方修改的子仓库

        也就是子仓库在其他地方被修改并push,我们的主仓库以及其中的子仓库还没反应过来;

git submodule update --init  #初始化版本
git submodule update --remote  #更新到最新版本

4、clone已经添加子仓库的主仓库

        和常规clone一样把主仓库clone下来,然后发现子仓库是空的,在主仓库目录执行:

git submodule init  

git sumodule update --remote

        这样子仓库代码就下载好了。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值