git subtree:子树则是将子仓库的内容合并到主仓库中,形成一个统一的仓库。子树操作会将子仓库的提交历史以子目录的形式嵌入到主仓库中,因此在主仓库中可以直接查看和管理子仓库的代码。与submodule不同,subtree并不保留子仓库的独立性,而是将其与主仓库整合在一起。 二、使用场景 git submodule:适用于以下场景: 项...
删除子模块: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@github.com:QuarkGluonPlasma/git-research-child.git main 这样和 submodule 有什么区别呢? 不知道你有没有发现,child 目录下是没有 .git 的,这代码它不是一个单独的 git 项目,只是一个普通目录: 所以你在这个目录下的任何改动都可以被检测到: ...
使用git submodule 相比git subtree, 对于刚刚的项目场景,还可以使用 git submodule 命令,这里我们简单提一提就可以了,使用方式比较简单。 git submodule的概念是:将一个仓库作为一个子模块添加到另一个仓库中,作为一个特殊的文件类型,只记录子仓库的提交哈希值。其优点是:可以在父仓库中修改子仓库的代码,可以在子...
Subtrees vs Submodules 最简单理解两者的方式,subtrees在父仓库是拉取下来的一份子仓库拷贝,而submodule则是一个指针,指向一个子仓库commit。 这两者的差别意味着,不需要推送更新到submodule因为我们直接提交更新到它指向的子仓库,但推送更新到subtree则显得比较复杂,因为父仓库没有子仓库相关的历史信息。
git submodule和git subtree都允许在一个项目中引入另一个项目,但它们之间存在一些差异。git submodule可以在子项目中保留独立性,通过在其目录中创建.git子目录,并在.gitmodules文件中记录url和保存路径。子项目可以通过独立执行git pull和git push进行更新,而父项目仅记录关联的commit变化,不会直接管理...
git subtree不需要你的仓库的用户学习任何新东西。他们可以忽略你使用git subtree来管理依赖关系的事实。 git subtree不会像 git submodule 那样添加新的元数据文件(即.gitmodule)。 模块的内容可以被修改,而不需要在其他地方有单独的依赖关系的仓库副本。
SubModule与SubTree的差异 核心区别 git submodule类似于引用,而git subtree类似于拷贝,比如你在一篇博客中想用到你另一篇博客的内容,git submodule是使用那篇博客的链接,而git subtree则是将内容完全copy过来。 2、优劣 目前其他地方还未用到,期望各位补充