使用场景

拆分项目,当项目越来越大之后,我们希望 子模块 可以单独管理,并由 专门 的人去维护,这个时候只可以使用 git submodule 去完成。

常用命令

git clone <repository> --recursive # 递归方式克隆整个项目
git submodule add <repository> path # 添加子模块
git submodule init # 初始化子模块
git submodule update # 更新子模块
git submodule foreach git pull # 拉取所有子模块

使用方式

添加子模块

git submodule add <repository> path 即可添加

克隆子模块

git clone <repository> --recursive 直接递归克隆,如果是克隆父项目,可以在克隆完成之后,使用 git submodule init 初始化子项目列表和 git submodule update 更新最新的子项目。

更新子模块

如果子模块和新的修改,但是父项目没有更新到最新,则可以使用 git submodule foreach git pull 将所有的子项目中更新,如果子项目比 .gitmodules 新,则需要更新一下 .gitmodules

父项目中的子模块的版本是由 commit id 标识的,所以需要更新 .gitmodules

删除子模块

首先需要 git rm --cached <path> ,然后依次删除对应的目录、.gitmodules 文件中的记录、 .git/cofig 中的记录。再提交到远程服务器,就可以删除了。

注意:

在执行 git rm --cached <path> 的时候,最后不可以有 /

修改子模块配置信息

与删除相同,需要同时修改 .gitmodules.git/config 两个文件中的 URL 值,然后执行 git submodule sync 来同步,然后再提交到远程即可。

git submodule 管理子项目的更多相关文章

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

    在项目开发中,特别是web前端开发中,有非常多的开源第三方library,我们希望引用他们,同时也希望能够方便地保持这些第三方 开源repo的更新.另外一方面如果我们自己在开发一个网站的项目,这个项目 ...

  2. [转]使用Git Submodule管理子模块

    本文转自:https://blog.csdn.net/qq_37788558/article/details/78668345 实例代码: 父项目:https://github.com/jjz/pod ...

  3. 使用Git Submodule管理子模块

    转自:https://segmentfault.com/a/1190000003076028 使用场景 基于公司的项目会越来越多,常常需要提取一个公共的类库提供给多个项目使用,但是这个library怎 ...

  4. 转:Git Submodule管理项目子模块

    使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone ...

  5. Git Submodule管理项目子模块

    使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone ...

  6. git submodule的使用

    1.在项目中使用Submodule 为当前工程添加submodule,命令如下:git submodule add 仓库地址 路径仓库地址:是指子模块仓库地址URL.路径:指将子模块放置在当前工程下的 ...

  7. Git submodule 子模块的管理和使用

    因为代码分了两个小组管理,一部分代码使用跨平台语言实现,一部分使用原生实现. 所以使用Git submodule 来进行管理. 1,查看/更新 子模块 $ git submodule add ssh: ...

  8. git submodule git 子模块管理相关操作

    Git 子模块操作相关的一些命令备忘: # 当使用git clone下来的工程中带有submodule时,初始的时候 submodule的内容并不会自动下载下来的,需执行如下命令: git submo ...

  9. Git Submodule简单操作

    基于组件的项目很多,但是如果直接用包的方式直接引用到项目中,如果出现问题很难进行调试的操作,也很难进行组件的优化和管理,所以写了一篇文章来介绍下git submodule的用法,用submodule可 ...

随机推荐

  1. 添加SuperSocket的启动代码到 Windows Azure 的 WorkRole 项目

    与其它SuperSocket程序相同,启动代码同样也要写到程序的入口处,如 Windows Azure 的 WorkRole 项目的OnStart() 方法: public override bool ...

  2. 不需内测账号,带你体验微信小程序完整开发过程

    不需内测账号,带你体验微信小程序完整开发过程 2016年09月24日 - 作者: SwiftCafe 微信小程序还没正式发布就已经迅速成为大家讨论的焦点,那么大家可能觉得只有收到内测邀请才能体验小程序 ...

  3. vs code 如何修改默认主题的注释颜色

    平时喜欢将注释的颜色调成绿色,既不刺眼,也比较醒目,在大型项目中,能很容易的根据注释找道想要的部分:但是,每次修改完使用一段时间后,当vs code 自动更新了,又变成默认的颜色了,为了方便每次快速修 ...

  4. Scrapy项目注意事项

  5. 本地安装配置redis

    Windows中redis的下载及安装.设置   本文是转载自:https://www.cnblogs.com/jylee/p/9844965.html 下载地址: https://github.co ...

  6. Java开发之快捷键

    1.显示桌面快捷键:win+D或者右击状态栏,选择显示桌面. 2.UE编辑器:如果想把多行记录合并为一行,使用替换(Ctrl+R),查找里输入^p(代表回车换行符),替换为里什么都不填,替换位置选择所 ...

  7. SpringSecurity 自定义用户 角色 资源权限控制

    SpringSecurity 自定义用户 角色 资源权限控制 package com.joyen.learning.security; import java.sql.ResultSet; impor ...

  8. HDU 6662 Acesrc and Travel (换根dp)

    Problem Description Acesrc is a famous tourist at Nanjing University second to none. During this sum ...

  9. 解决netcore在docker容器中连接oracle报错(timezone region not found)

    错误提示: timezone region not found错误原因:docker 容器内时区不是 CST 导致解决办法:1.在dockerfile 中增加一下命令ENV TZ=Asia/Shang ...

  10. CentOS 7 修改root密码

    1.开机,在启动菜单上选择CentOS Linux (3.10**.**.x86**) 7 (Core) 按下e,进入编辑模式2.将光标一直移动到 LANG=en_US.UTF-8 后面(如果找不到, ...