git submodule的使用

开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管理是个麻烦的事情。今天无意中发现了Git的git submodule命令,之前的问题迎刃而解了。

添加

为当前工程添加submodule,命令如下:

git submodule add 仓库地址 路径

其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下的路径。 
注意:路径不能以 / 结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利 Clone)

命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息。添加完成以后,再将子模块所在的文件夹添加到工程中即可。

删除

submodule的删除稍微麻烦点:首先,要在“.gitmodules”文件中删除相应配置信息。然后,执行“git rm –cached ”命令将子模块所在的文件从git中删除。

下载的工程带有submodule

当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:

git submodule update --init --recursive

即可将子模块内容下载下来后工程才不会缺少相应的文件

时间: 2024-08-10 00:04:38

git submodule的使用的相关文章

Git Submodule管理项目子模块

使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone <repository> --recursive 递归的方式克隆整个项目 git submodule add <repository> <path> 添加子模块 git submodule init 初始化子模块 git submodule update 更新子模块 gi

Tutorial for adding a library project as git submodule and then using it as a studio Module

https://gitsubmoduleasandroidtudiomodule.blogspot.in/I'm writing this blog to make the development process easy and faster. This is specific to Android Studio, same can be used for any other project which used Gradle build system and GIT. I want to m

使用git submodule管理一个需要多个分立开发或者第三方repo的项目

在项目开发中,特别是web前端开发中,有非常多的开源第三方library,我们希望引用他们,同时也希望能够方便地保持这些第三方 开源repo的更新.另外一方面如果我们自己在开发一个网站的项目,这个项目一般分为前端和后端两个相对独立的子项目,特别是前端的repo可能在不同的项目中共享,那么这时,你就可能希望将项目分开为前端和后端两个repo,如何管理这种情况呢?一个比较好的方案就是使用git的submodule功能. 假设我们的父repo在prepo目录,sumodule newtestrepo希

git submodule 解析

submodule 原理 submodule 是一个版本库,跟你的主版本库实际上是一个东西. 将 submodule add 到你的主版本库,是将一个子版本库的一条提交,也就是head,被主版本库纪录了下来. 主版本库使用这个版本库head之前的代码. git 是一个文件系统,子版本库的remote地址和这个版本库的head,这些纪录究竟保存在哪里呢. 我们来具体操作一下 我在自己项目中添加了一个临时分支,_my_br, 在这个分支下做下实验 尝试将sqlite作为子版本加入到主版本库中 看一下

Git subtree和Git submodule

git submodule允许其他的仓库指定以一个commit嵌入仓库的子目录. git subtree替代git submodule命令,合并子仓库到项目中的子目录.不用像submodule那样每次子项目修改了后要init和update.万一哪次没update就直接"commit -a" 或者 "add ." 全commit上去就悲剧了. git subtree虽然比git submodule更好用,但也不是特别完美的解决方案,使用时一定要特别注意. git-su

git submodule的操作

对于有submodule的库,检出的方法是: git clone https://github.com/BelledonneCommunications/linphone-android.git --recursive 如果由于被墙而不能下载,或者网络问题中途断掉了,可以使用 git submodule update --recursive 接着传送没传的submodule. 如果有submodule被墙了,则可以先再codingnet上导入一个公开项目,这样下载codingnet上的项目:或者

Git Submodule 使用简介

时间 2016-03-05 23:22:27  "地瓜哥"博客网 原文  http://www.diguage.com/archives/146.html 主题 Git D瓜哥从去年开始,将所有的笔记都整合到了自建的 Wiki 中.整理分析,确实方便很多. 最近有两个部分,比较独立,自成系统.其中,有一个模块还考虑和其他小伙伴合作来搞.所以,就将这两部分抽取出来,独立成单独的项目来维护.但是,为方便查看和随时随地同步更新,正好可以使用 Git Submodule 特性. 另外,还有一种

git submodule获取子模块

从github上获取工程,经常会出现依赖其它github上代码的情况,这时如果每一个都手动下载,实在太麻烦了.其实git给我们提供了相互引用的功能,可以在工程中直接引入其它的代码库,这样可以保证每次使用的子模块也都是最新的. git clone https://github.com/Kjuly/iPokeMon.gitgit submodule initgit submodule update

git submodule(转载)

From:http://www.worldhello.net/2010/01/26/425.html 删除 git submodule (git 库子模组) 有两种情况会创建 git submodule (git 子模组) 显性方式添加:使用 git submodule 命令将其他git库作为子目录添加,即子模组 隐性方式添加:使用 git add 添加,如果某个子目录本身是一个 git 库,就自动添加为子模组,不再递归添加该目录下面的文件 那么这两种方式添加的子模组有什么不同?子模组有什么副作