git子模块管理操作指引

概述

目前基本上绝大多数的公司均废弃了同步时的SVN,转而拥抱分布式的git。为了开发和管理的方便,往往会将一个大的项目拆分成多个子项目进行独立开发,子项目之间的依赖和引用通过子模块的方式使用,对于刚从SVN转过来的用户,使用git管理子模块会碰到各种坑,这里进行一个汇总。

添加子模块工程

将子模块加到submodule

git submodule add url path  # url 为git库的地址,path表示子模块存放的路径,可以是单极文件夹,可以是多级文件夹。

执行成功后,在当前项目下可以看到.gitmodules,通过vim打开,可以看到如下内容:
在这里插入图片描述

[submodule "sm"]
	path = sm
	url = http://github/xx/sm.git

表示添加了一个子项目sm,存放在当前项目根目录sm下。

提交子模块到远程

git commit

子模块使用

方法一:

git submodule init
git submodule update

方法二:

git submodule update --init --recursive
git submodule update –remote   # 将子仓库的更新拉取下来

删除子模块

手动删除法(以sm项目为例):

rm -rf <sm>            # 删除子模块文件
vim .gitmodules        # 在.gitmodules找到对应记录并删除
vim .git/config        # 在config中找到对应记录并删除
rm .git/modules/<sm>    # 删除模块下的子模块,每个子模块对应一个目录
git rm --cached <sm>   

命令删除法

git submodule deinit -f sm   # 反向初始化submodule, 加上-f会同时删除子仓库数据
vim .gitmodules         # 打开文件,删除对应的记录, 需手动删除
rm .git/modules/<sm>    # 手工删除对应目录, 需手动删除
rm sm                   # sm 对应 添加子模块“git submodule add url path” 中path的文件, 需要手工删除
git rm --cached <sm>  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值