与submodule不同,subtree并不保留子仓库的独立性,而是将其与主仓库整合在一起。 二、使用场景 git submodule:适用于以下场景: 项目依赖管理:当主项目依赖于其他外部仓库或库时,可以使用子模块来管理这些依赖关系。 共享代码库:多个项目需要共享一些通用的代码库时,可以使用子模块来引入这些共享库。 git subtree:适用于以下
删除子模块:git rm --cached subModulesA rm -rf subModulesA --recursive表示递归地克隆git_parent依赖的所有子版本库。 git subtree(子树合并) 上面介绍的git submodule是Git自带的原生功能,我们接下来将要介绍的git subtree则是由第三方开发者贡献的contrib script,Git本身并不提供git subtree命令,contrib中包含一...
gitclone<repository> --recursive# 递归的方式克隆整个仓库,包含父仓库和子仓库的内容gitsubmoduleadd<repositoryaddress><path># 添加子仓库gitsubmoduleinit# 初始化子仓库,向.git/config文件写入子模块的信息gitsubmoduleupdate# 更新子仓库,拉取父仓库中对应子仓库的提交id内容到到父仓库目录gitsubmoduleforeach git ...
git clone 的时候可以 --recursive-submodules 来递归初始化 submodules,或者单独执行 git submodule init 和 git submodule update 可以体会到啥叫复用子项目代码的同时保留项目的独立性了么? 然后我们再来试试 git subtree: 还是这样一个项目: 我们用 subtree 的命令添加子项目: git subtree add --prefix=child ...
git subtree add --prefix=child git@:QuarkGluonPlasma/git-research-child.git main 1. 这样和 submodule 有什么区别呢? 不知道你有没有发现,child 目录下是没有 .git 的,这代码它不是一个单独的 git 项目,只是一个普通目录: 所以你在这个目录下的任何改动都可以被检测到: ...
使用git submodule 相比git subtree, 对于刚刚的项目场景,还可以使用 git submodule 命令,这里我们简单提一提就可以了,使用方式比较简单。 git submodule的概念是:将一个仓库作为一个子模块添加到另一个仓库中,作为一个特殊的文件类型,只记录子仓库的提交哈希值。其优点是:可以在父仓库中修改子仓库的代码,可以在子...
第十讲:Git子库:submodule与subtree 前言 一个中大型项目往往会依赖几个模块,git提供了子库的概念。可以将这些子模块存放在不同的仓库中,通过submodule或subtree实现仓库的嵌套。 一、 submodule submodule:子模块的意思,表示将一个版本库作为子库引入到另一个版本库中: ...
在选择git submodule或git subtree时,需要考虑项目的耦合度和对独立性的需求。git submodule提供较低的耦合度和更明显的独立性管理,而git subtree则更偏向于将子项目无缝集成到父项目中,同时保留独立的git仓库管理。根据项目的实际需求和偏好,可以选择适合的工具来管理git项目中的子项目。
git submodule foreach git checkout master 1 切换到所有master分支上(ModuleB为ResourceEvaluate,暂时需要单独执行) 其余所有操作可单独在各个模块上执行。 subtreee 增加远程仓库并设置引用名,此步可省略,主要是为了简化后面的操作 git remote add ModuleA http://sifan.liu@scm.ModuleB.com/bitbucket/scm/nic/...
git subtree不需要你的仓库的用户学习任何新东西。他们可以忽略你使用git subtree来管理依赖关系的事实。 git subtree不会像 git submodule 那样添加新的元数据文件(即.gitmodule)。 模块的内容可以被修改,而不需要在其他地方有单独的依赖关系的仓库副本。