赞
踩
submodule:类似于引用
subTree:类似于拷贝
场景例子:在一篇博客中想用到你另一篇博客的内容,git submodule是使用那篇博客的链接,而git subtree则是将内容完全copy过来。
优劣
subtree
与submodule
的作用是一样的,但是subtree
出现得比submodule
晚,它的出现是为了弥补submodule
存在的问题:
1、
submodule
不能在父版本库中修改子版本库的代码,只能在子版本库中修改,是单向的
2、submodule
没有直接删除子版本库的功能
二者共同缺陷 - 分支管理不便
submodule更新子仓库代码后,关联的是commit,需手动切换到相应分支再进行开发。
subtree无法在编译器同一窗口对子仓库分支直接管理,以及无法查看关联的子仓库分支或commit。
相关命令超链
属于子仓库的代码希望能由子仓库直接接管,subtree是双向的,容易导致漏合代码到子仓库
能够随时查看git origin的一个更新状态
能够在同一编译器窗口下对子仓库的分支进行管理,如合并切换等操作,更便捷
支持foreach更新所有子仓库:git submodule foreach git pull
操作命令更简易
难点
子仓库分支与主仓库分支不会主动关联,不便管理,开发中需要较为小心
解决方案
增加branch node脚本,支持主仓库子仓库同频branch操作,保证主、子分支一致性
git submodule使用 解决同频操作分支难点_阿东、的博客-CSDN博客
- stage('Git-pull') {
- // 从Git中clone代码
- git branch: "${currentBranch}", url: "${gitRepo}"
- // 子仓库初始化并更新
- sh "git submodule update --init"
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。