git submodule 操作

Git 使用submodule 管理外链库

git clone 下载了库之后,首先 git submodule init 再 git submodule update这样就可以把下载的库的外链拿到依赖的内容,submodule 是固定conle 的commit,默认是head 执行执行```git submodule add```或对于新clone下来宿主项目执行 ```git submodule update```后,得到的submodule是处于头指针脱离状态, 在其目录中执行git branch可以看到当前没有指向任何分支。去.git/modules/xxx中查看HEAD文件,其内容为commit id而不是通常的ref。

可以在本地子模块中进行checkout改变分支指向,比如git checkout master使得子模块工作区改为master分支,并且可以在其中修改文件并提交和push。如果子模块工作区的提示改变了,宿主工作区可以看到子模块的提提交id改变了。


如果在宿主机执行了git add 和 git commit,就是修改了子模块的提交id ,并且可以进行git push 操作,但是别的机子进行pull 和 submodule update 操做后子模块还是指向固定的提交id(最新提交的一个)而不是master。因此,git的子模块就是指向固定的提交id,这个id可以改变。
分支和submodule: submodule是属于分支的,不同的分支可以设定submodule不同的提交id, check out到新分支需要执行git submodule update来更新submodule
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值