赞
踩
直接在主仓库路径下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网站,能看到子仓库已经被添加进去了
在子仓库做一些修改,然后提交到子仓库,并在主仓库进行更新,子仓库有自己的工作区和.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网址,能发现它俩都被更新;
也就是子仓库在其他地方被修改并push,我们的主仓库以及其中的子仓库还没反应过来;
- git submodule update --init #初始化版本
- git submodule update --remote #更新到最新版本
和常规clone一样把主仓库clone下来,然后发现子仓库是空的,在主仓库目录执行:
- git submodule init
-
- git sumodule update --remote
这样子仓库代码就下载好了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。