上面介绍的git submodule是Git自带的原生功能,我们接下来将要介绍的git subtree则是由第三方开发者贡献的contrib script,Git本身并不提供git subtree命令,contrib中包含一些实验性的第三方工具,由各自的作者进行维护。 同时这也让我们认识到git subtree不是Git原生支持的命令,而是第三方开发者通过Git的底层命令写出的一个...
与submodule不同,subtree并不保留子仓库的独立性,而是将其与主仓库整合在一起。 二、使用场景 git submodule:适用于以下场景: 项目依赖管理:当主项目依赖于其他外部仓库或库时,可以使用子模块来管理这些依赖关系。 共享代码库:多个项目需要共享一些通用的代码库时,可以使用子模块来引入这些共享库。 git subtree:适用...
git submodule update 更新到当前分支的最新版本 git submodule update --remote 切分支 直接到.gitmodules文件修改绑定的分支 再执行 git submodule update --remote subtree 带着提交记录来拷贝仓库的话就用subtree git subtree add --prefix=src/xxx git@git.xxx:xxx/xxx.git master...
了解Git Submodules 有2个概念:主项目、submodule(子模块)。这两者各自都是完整的 Git 仓库。 如何让一个Git仓库变为另一个Git仓库的 submodule 创建Git仓库A。 创建Git仓库B。 在Git仓库A中,通过git submodule add ...(仓库B的地址,即git clone时后面那串东西),可以把仓库B当作仓库A的submodule,此时A就成了...
submodule 可以多层嵌套 git clone 的时候可以 --recursive-submodules 来递归初始化 submodules,或者单独执行 git submodule init 和 git submodule update 可以体会到啥叫复用子项目代码的同时保留项目的独立性了么? 然后我们再来试试 git subtree: 还是这样一个项目: ...
git submodule [--quiet] [--cached] #查看子模块的缓存 git submodule [--quiet] add [<options>] [--] <repository> [<path>] #添加子模块 git submodule [--quiet] status [--cached] [--recursive] [--] [<path>…] #查看当前子模块的状态 ...
个人觉得最大的好处就是不用像submodule那样每次子项目修改了后要init和update.万一哪次没update就直接"commit -a" 或者 "add ." 全commit上去就悲剧了. 具体你也可以看这里有用 回复 撰写回答 你尚未登录,登录后可以 和开发者交流问题的细节 关注并接收问题和回答的更新提醒 参与内容的编辑和改进,让解决方法与...
相比git subtree, 对于刚刚的项目场景,还可以使用 git submodule 命令,这里我们简单提一提就可以了,使用方式比较简单。 git submodule的概念是:将一个仓库作为一个子模块添加到另一个仓库中,作为一个特殊的文件类型,只记录子仓库的提交哈希值。其优点是:可以在父仓库中修改子仓库的代码,可以在子仓库中单独查看子仓...
使用git init --bare在本地创建两个裸仓库,分别表示主仓库和依赖的子仓库,我们将主仓库命名为main,依赖的子仓库命名为lib, git subtree使用同样的初始化方法,下文不再赘述。 git submodule常用命令 查看子模块:git submodule 更新子模块: 更新项目内子模块到最新版本:git submodule update ...
在选择git submodule或git subtree时,需要考虑项目的耦合度和对独立性的需求。git submodule提供较低的耦合度和更明显的独立性管理,而git subtree则更偏向于将子项目无缝集成到父项目中,同时保留独立的git仓库管理。根据项目的实际需求和偏好,可以选择适合的工具来管理git项目中的子项目。