Git子模块(submodule)简介

经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目。也许它是一个第三方开发的库或者是你独立开发和并在多个父项目中使用的。这个场景下一个常见的问题产生了:你想将两个项目单独处理但是又需要在其中一个中使用另外一个。
子模块允许你将一个 Git 仓库当作另外一个Git仓库的子目录。这允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立。

Git子模块用法

添加一个子模块

首先你要把外部的仓库克隆到你的子目录中。
假设你想把 pacman项目加入到你的blog项目中,你通过git submodule add将外部项目加为子模块:

cd blog
git submodule add https://gitcafe.com/aceking/pacman.git themes/pacman

现在你就在项目里的themes/pacman子目录下有了一个 pacan项目。你可以进入那个子目录,进行变更,加入你自己的远程可写仓库来推送你的变更,从原始仓库拉取和归并等等。

.gitmodules文件: 这是一个配置文件,保存了项目 URL 和你拉取到的本地子目录。

克隆一个带子模块的项目

克隆你刚才创建子模块的项目。你将得到了包含子项目的目录,但里面没有文件:pacman目录存在了,但是是空的。
你必须运行两个命令:git submodule init来初始化你的本地配置文件,git submodule update来从那个项目拉取所有数据并检出你上层项目里所列的合适的提交。

cd blog
git submodule init themes/pacaman
git submodule update

现在你的pacman子目录就处于你先前提交的确切状态了。

参考:
Git-子模块

转载于:https://www.cnblogs.com/wonux/p/5238923.html

Git子模块引用外部项目相关推荐

  1. 怎样导入python colorama模块_使用git子模块导入python项目

    (我意识到在StackOverflow上有很多与python相关的导入相关的问题:我也怀疑我这样做是完全错误的:但是不管怎样,这里还是要说-) 我有一个python项目(mysubmod)组织如下:/ ...

  2. 使用Git子模块和开发模式管理Python项目

    目录 挑战 什么是开发模式? 什么是Git子模块? 设置项目 设置commonlib的Git存储库 设置myproj的Git存储库 设置Git子模块 将存储库添加为子模块 更新子模块 使用Git子模块 ...

  3. git 添加外部项目地址

    github 提交第三方模块流程 // git config --global user.name 'your name' 可以设置全局用户名,在commit记录里显示的是这个配置设置的名称. // ...

  4. git 在 A 项目中引用 B 项目

    场景: 需要在项目calcDLL(http://XXX/XXXA.git) 中 引用 项目libindex(http://XXX/XXXB.git). 解决方法: 使用 Git 子模块(https:/ ...

  5. git 子模块在项目中的使用

    在公司的项目中, 经常会遇到一些公共的内容, 多个项目中间通用的, 不可能每次都将整个代码复制一遍, 遇到这种情况有很多不同的解决方案, 一般来说, 项目是通过 git 来管理的, 巧了, git 也 ...

  6. Web项目中前端页面引用外部Js和Css的路径问题

    公众号:南宫一梦 Web项目中前端页面引用外部Js和Css的路径问题 一般我们在做Web项目时,通常会将多个页面引入的公共js和css文件抽取出来,单独写成一个公共文件,以期方便各个页面单独引入,达到 ...

  7. maven引用公共包_maven项目引用外部jar包的方法

    问题描述: 有一个java maven web项目,需要引入一个第三方包gdal.jar,但是这个包是自己打包的,在maven中央库里面找不到该包,因此我采用传统的方式,将这个包拷贝到:项目名称\sr ...

  8. vue-cli项目引用外部CSS和JS

    vue-cli项目引用外部css和js 引用外部CSS 全局引用css 单文件引入CSS 引用外部JS 全局引用JS 单页面引用JS 引用外部CSS 全局引用css 方法一: ①将公共css文件放到s ...

  9. 手把手教你把 Git 子模块更新到主项目

    本文以 skywalking-rocketbot-ui子模块合并到 skywalking 为例,手把手教你如何把 Git 子模块更新到主项目中去. 首先,把fork的skywalking项目克隆到本地 ...

最新文章

  1. 我们也铺好了新赛道啦!!!
  2. python实现摄像头拍照_使用Python控制摄像头拍照并发邮件
  3. HDR视频生态圈追踪
  4. 双表联查mysql_MySQL的双表多表联查
  5. 下载Bootstrap3
  6. C语言齿轮参数计算程序,C语言程序实现齿轮基本参数几何尺寸计算.pdf
  7. iview 省市区 三级联动
  8. THREE将左键改为平移右键改为旋转
  9. 《企业大数据系统构建实战:技术、架构、实施与应用》——2.2 大数据职位构建体系...
  10. 22-23 - 页式内存管理
  11. 工作杂记-关于IOS通过Safari使用https域名访问的坑
  12. 用while循环写四叶玫瑰数(自幂数)
  13. 7年老Android一次操蛋的面试经历,讲的明明白白!
  14. 2.zookeeper
  15. idea中的Diagram功能,查看类图
  16. 今日芯声 | Android麻烦了!鸿蒙OS将让它变得更脆弱
  17. Python:从入门到实践-20章有关Heroku的各种坑(2)
  18. 123720服务器网站,123720a.com
  19. 【Rtklib入门指南】1. Rtklib下载及编译
  20. org.apache.commons.commons-lang3工具类(一)

热门文章

  1. 出现次数超过一半的数字
  2. QML与C++交互:登陆界面设计
  3. Hadoop YARN
  4. AOP的两种实现方式
  5. Mac OS X 10.9 装gdb
  6. 算法--合并两个有序链表
  7. mybaits八:select查询返回map集合
  8. objective-c 方法加号(+) 减号(-)
  9. 第 30 章 lvs-rrd
  10. 呼叫中心团队管理浅谈