From:http://www.worldhello.net/2010/01/26/425.html

删除 git submodule (git 库子模组)

有两种情况会创建 git submodule (git 子模组)

  • 显性方式添加:使用 git submodule 命令将其他git库作为子目录添加,即子模组
  • 隐性方式添加:使用 git add 添加,如果某个子目录本身是一个 git 库,就自动添加为子模组,不再递归添加该目录下面的文件

那么这两种方式添加的子模组有什么不同?子模组有什么副作用?如何删除模组呢?

两种方式添加模组,效果略有不同

  • 隐性方式添加,看似直接将目录加入版本库,而实际上是加入一个和目录名同名的 submodule 条目;
  • 显性方式添加,除了像隐性方式在 index/commit 中创建submodule 条目外,还会创建一个 .gitmodules 文件,也会在 .git/config 中创建相应记录。具体参见 git submodule 命令。

子模组的副作用

有时,并未意识到目录按照模组方式添加。例如在用 gistore 备份文件和目录时,当某个目录本身用 git 做了版本控制,就会以子模组的方式添加目录。 如何将子模组按照正常的目录形式添加到版本控制系统呢?用下面的方法做不到:

  • 删除子模组的 .git 目录,即将子模组下的 git 版本库删除
  • 当执行 git add 时报错: fatal: Path '... ...' is in submodule '...'

那么,该怎么办呢?

如何删除子模组

使用 git 命令即可删除子模组

git rm --cached path/to/submodule

对于显性定义的子模组,还要删除 .gitmodules 文件和 .git/config 文件中的相关条目。

 

git submodule(转载)的更多相关文章

  1. git submodule 删除及更新URL 转载的

    删除一个submodule 1.删除 .gitsubmodule中对应submodule的条目 2.删除 .git/config 中对应submodule的条目 3.执行 git rm --cache ...

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

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

  3. Git Submodule使用完整教程

    Git Submodule功能刚刚开始学习可能觉得有点怪异,所以本教程把每一步的操作的命令和结果都用代码的形式展现给大家,以便更好的理解. 1.对于公共资源各种程序员的处理方式 每个公司的系统都会有一 ...

  4. git submodule临时分支;以及git reset使用

    submodule 已经建立好了一个gitlab submodule形式的repo: 在repo A下面有一个submodule B, A --> B. clone -b branch [rep ...

  5. 使用Jenkins + git submodule 实现自动化编译,解决代码安全性问题

    道哥的第 030 篇原创 目录 一.一个真实的代码泄漏故事 二.Jenkins 的基本使用 1. Jenkins 是什么? 2. 安装 JDK8 3. 安装 Jenkins 4. 在浏览器中配置 Je ...

  6. git submodule初用

    git submodule主要是用于针对git项目中还存在git子模块的情况.在一般情况下,我们通过git clone 获取项目的时候会把项目中的所有信息都拿到.但是,如果相关中存在git子模块那么, ...

  7. git submodule 使用

    这个是备忘录,原网页: https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407 http://cncc.bingj.c ...

  8. Git submodule 特性

    当你习惯了代码的 VCS 后,基本上是离不开的. 作为一个依赖多个子项目组成的项目,要实现直观的代码逻辑结构,可以考虑使用 Git submodule 特性. 当然,如果只是单独的依赖的话,用依赖管理 ...

  9. Git subtree和Git submodule

    git submodule允许其他的仓库指定以一个commit嵌入仓库的子目录. git subtree替代git submodule命令,合并子仓库到项目中的子目录.不用像submodule那样每次 ...

随机推荐

  1. anjularjs简介

    1 什么时候该用AngularJS AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架.首先,它是一个框架,不是类库,是像EXT一样提供一整套方案用于设计web应用.它不仅仅 ...

  2. appium 执行demo

    appium很早就了解了,一直没有之际操作过,最近把官网的demo搞下来执行了一遍,还是很有意思的 经过测试是可以跑起来的,不过跑得过程中,输入法需要默认为英文的,如果是中文的码输入的时候有点问题,可 ...

  3. iOS后台挂起程序 当程序到后台后,继续完成Long-Running Task 任务

    我们知道,到我们程序从前台退到后台(安home)键后,将执行程序的委托方法. // 当应用程序掉到后台时,执行该方法 - (void)applicationDidEnterBackground:(UI ...

  4. SpringMVC笔记

    Struts1是采用单例模式的,在并发访问中出来资源混乱,于是出现Struts2被设计为多例的解决并发产生的 数据混乱由于Struts2引入了值栈,拦截器,OGNL等,,,是访问速度下降在原生的JSP ...

  5. 关于ref的一点理解

    先写一段代码 class Test { public int Count { get; set; } } static void Main(string[] args) { Test test = } ...

  6. Angularjs scope

    $scope: var myapp = angular.module('myapp', []); myapp .controller('parent', function ($scope,$timeo ...

  7. ecshop后台分页浅析

      既然是分页,道理都是一样的,不过ecshop前台分页的函数和后台分页的函数不同,后台分页函数为page_and_size(),在admin/includes/lib_main.php里.都是用aj ...

  8. RestfulApi地址命名特点

    get /orders 全部get /orders/{id} 根据id查找get /orders/{number} 根据编号查找get /orders/name/{name} 根据名称查找post / ...

  9. css技术

    CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现HTML或 XML 等文件式样的计算机语言. CSS 目前最新版本为CSS2,能够真正做到网页表现与内容 ...

  10. java的三大框架(二)---Struts2

    Strtu2框架 1.控制器:ActionServlet充当控制层 2.模型层:由ActionForm及业务JavaBean实现 3.视图:用户的看到并与之交互的界面   由struts标签库和jsp ...