git submodule(转载)

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 文件中的相关条目。

时间: 2024-10-08 10:59:18

git submodule(转载)的相关文章

Git Submodule 使用简介

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

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

本文转自:https://blog.csdn.net/qq_37788558/article/details/78668345 实例代码: 父项目:https://github.com/jjz/pod-project 子项目:https://github.com/jjz/pod-library 使用场景 基于公司的多项目,我们提取了一个公共的类库提供给多个项目使用,但是这个library怎么和git在一起方便的管理呢? 需要解决以下的几个问题: 如何在git项目中导入library库? libr

Git Submodule管理项目子模块

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

git submodule的使用

开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管理是个麻烦的事情.今天无意中发现了Git的git submodule命令,之前的问题迎刃而解了. 添加 为当前工程添加submodule,命令如下: git submodule add 仓库地址 路径 其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下的路径.  注意:路径不能以 / 结尾(会造成修改不生效).不能是现有工程已有的目录(不能順利 Clone) 命令执行完成,会在当

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上的项目:或者