博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git-子模块submodule
阅读量:4290 次
发布时间:2019-05-27

本文共 775 字,大约阅读时间需要 2 分钟。

git 裸库

没有工作区的git仓库,例如远程服务器存放项目代码的仓库,并不需要工作区来修改

git submodule

一个git项目需要引入另外一个git项目的时候,可以使用submodule命令来完成。

git submodule add git@github.com:huiGod/git_child.git mymodule

在当前git项目中将指定的远程仓库作为自己的子模块项目关联起来,最后的mymodule这个文件夹需要之前不存在,成功执行之后会生成额外的文件:

这里写图片描述

.gitmodules文件为:

这里写图片描述

mymodule下面为submodule所关联的完整远程仓库的内容文件。

由此可见,当前git_parent项目就关联了一个远程仓库在当前仓库(可以关联很多个),通过cd可以切换子模块的项目,cd mymodule之后进入到了git_child模块项目中。

这里写图片描述

当关联的子模块项目有新的提交之后,可以cd切换到相应模块目录执行 git pull来拉取当前模块最新的代码,但是如果有很多个子模块相关联,显然这种一个个的切换pull是不切实际的。另一种一次性拉取所有子模块最新代码的命令是在最外层的项目目录执行:

git submodule foreach git pull

如果子模块有最新的提交,那么继续执行后续的git add commit push即可拉取所有子模块的最新提交。

对于有submodule的git项目,对应的clone需要有一定的改变,因为同时需要clone对应的子模块:

第一种方法:

git submodule initgit submodule update --recursive

第二种方法:

git clone git@github.com:huiGod/git_parent.git  --recursive
你可能感兴趣的文章
单链表是否有环的问题
查看>>
判断两个链表是否相交并找出交点
查看>>
归并排序
查看>>
STL常见问题
查看>>
time_wait和close_wait状态
查看>>
STL中vector、list、deque和map的区别
查看>>
Linux下多线程查看工具(pstree、ps、pstack)
查看>>
PID PPID LWP NLWP
查看>>
查看线程CPU占用情况
查看>>
查看个线程的CPU 内存占用
查看>>
svn中设置文件夹链接
查看>>
find ./ -name "*.cgi" |xargs -i cp "{}" ./cgi-bin/
查看>>
svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add
查看>>
mysql事务处理用法与实例详解
查看>>
Python模块——struct
查看>>
mysql中select * for update
查看>>
linux vmstat 1 ,watch , pmap -p,
查看>>
MYSQL 相关
查看>>
python 构建client 程序
查看>>
c++ 加载so动态库中的资源
查看>>