git submodule

其实用git的时间仍是挺久的,但居然不晓得git的子模块,瞬间有种”问今乃何世,不仅有汉,不管魏晋“的赶脚,羞的老脸发红。git

应用场景

  • 剥离代码公共部分。

工做中,每一个人或公司在长时间的coding中都造成经常使用的代码工具库,将这些公共部分剥离出来,作单点维护。工具

  • 间接的实现目录权限的管理。

git没有更细的权限管理功能,若是但愿对某些文件夹实现权限管理,从而在团队合做中,只须要关注或维护本身关注的文件夹就ok了。code

如何使用

子模块使用起来比较简单,他便可以看作一个子模块,也能够看作一个完整的git工程,原来的git命令在子模块下照常使用。递归

添加子模块it

进入到主目录执行module

git submodule add 地址

查看执行后的状态,会发现主目录下多了一个.gitmodules文件和一个git工程date

git status

提交子模块(和普通提交修改同样)foreach

git commit -m xxx

一般做为公共部分最重要的是获取更新,有两种方式coding

  • 首先在主目录下直接获取全部子模块
git submodule foreach git pull

-在主目录下更新子模块权限

git pull
git submodule update
  • 在子模块下获取更新(就是一个普通的git工程)
git pull

首次clone带有子模块的工程,也有两种方式

  • 使用--recursive递归参数,一哈子都clone下来了
git clone 地址 --recursive
  • 分部获取,现获取主目录,在初始化子模块(推荐,条理清楚)
git clone 地址
git submodule init
git submodule update

删除子模块(把模块的两个文件删了就得了)

相关文章
相关标签/搜索