git-submodule 使用详解

命令用法

git submodule [--quiet] [--cached]
git submodule [--quiet] add [<options>] [--] <repository> [<path>]
git submodule [--quiet] status [--cached] [--recursive] [--] [<path>…​]
git submodule [--quiet] init [--] [<path>…​]
git submodule [--quiet] deinit [-f|--force] (--all|[--] <path>…​)
git submodule [--quiet] update [<options>] [--] [<path>…​]
git submodule [--quiet] set-branch [<options>] [--] <path>
git submodule [--quiet] set-url [--] <path> <newurl>
git submodule [--quiet] summary [<options>] [--] [<path>…​]
git submodule [--quiet] foreach [--recursive] <command>
git submodule [--quiet] sync [--recursive] [--] [<path>…​]
git submodule [--quiet] absorbgitdirs [--] [<path>…​]

实战在gitlab上新建一个空项目,clone 到本地,然后就可以使用以下命令添加模块

#git submodule [--quiet] add [<options>] [--] <repository> [<path>]
git submodule add http://x.x.x.x/repository/test.git  test

添加完成后项目目录下会新增一个.gitmodules文件打开文件可以查看到内容如下

[submodule "test"]
	path = test
	url = http://x.x.x.x/myrepository/test.git

一个模块就添加好了,要是你有很多工程需要批量切换分支,管理,更新等。git-submodule是非常好用的。
当你把所有子模块建立完成后,别人拉取到该项目,项目都为空目录,并不会拉取所有的项目文件
这个时候只需要执行以下命令即可

git submodule update --init --recursive

命令执行完成后所有项目就拉取下来了,接下来所有对项目的批量操作全部都可以使用以下命令其实就是在常规命令前加了个git submodule foreach

#git submodule [--quiet] foreach [--recursive] <command> 如
git submodule foreach git branch -a

移除子模块

git rm test
git commit -m "remove test"
git push

以上内容分清对象操作即可,概念为当前工程和工程下的子模块操作,当前工程操作还是原生git xxx,子模块操作git submodule xxx.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值