首页
学习
活动
专区
圈层
工具
发布

Git Submodule的介绍与使用

开始使用 1.添加子模块 git submodule add //如果不指定本地路径 默认放在当前目录下 2.如果子模块代码有修改需要同步至远程仓库 进入到子模块目录下, 指定分支...update --remote 或者 直接进入到子模块目录下: git pull 两者效果都是一样的 注意:如果你的子模块内部也包含了一个子模块, 你可以使用: git submodule foreach...git submodule update 进行遍历更新 4.如果你要删除子模块 1.删除.gitsubmodule里相关部分 2.删除.git/config 文件里相关字段 3.删除子仓库目录。...5.团队开发的时候, 进来一个新的成员, 他首次clone项目的时候, 并不会将子模块一并clone进来 这个时候, 需要先初始化子模块: # 用来初始化本地配置文件 git submodule init...# 从该项目中抓取所有数据并检出父项目中列出的合适的提交(指定的提交)。

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    公共模块管理之 Git Submodule 使用总结

    使用者使用起来也极为简单,一条命令搞定: $ npm install 1.2 git 子模块管理工具 submodule git submodule 能够在项目主工程中添加子工程模块...2.2 获取 submodule 使用 git submodule add 命令会自动拉取子工程项目代码到指定目录,但其他开发者获取主项目代码时,使用 git clone 命令是不会拉取到子项目的代码的...,但不会列出差异,并且主项目所有的 git add 和 git commit 操作都不会对子项目产生影响。...其他说明 3.1 使用 foreach 批量操作 若一个项目中有多个子模块需要执行相同的操作,每次切换到对应的目录挨个执行效率太低,此时可以使用 git submodule foreach : $ git submodule foreach git checkout master $ git submodule foreach git pull 3.2 关于默认分支 当 clone 包含

    6.6K180

    Git 工具 - 子模块: submodule与subtree的使用

    可以端详官网:https://git-scm.com/book/zh/v2/Git-工具-子模块 多个父级仓库都依赖同一个子仓库,但是子仓库自身不单独进行修改,而是跟随父级项目进行更新发布,其他依赖子仓库的项目只负责拉取更新即可...  递归更新整个项目submodule:git submodule foreach git pull 删除子模块:git rm --cached subModulesA    rm -rf subModulesA...--recursive表示递归地克隆git_parent依赖的所有子版本库。...而这正式git submodule的核心原理,Git在处理submodule引用的时候,并不会去扫描子仓库下的文件的变化,而是取子仓库当前的HEAD指向的commit的hash值,当我们对子仓库进行了更改后...我们假设你一开始在主仓库并没有采用子模块的开发方式,而是在另外的开发分支使用了子仓库,那么当你从开发分支切回到没有采用子模块的分支的时候,子模块的目录并不会被Git自动删除,而是需要你手动的删除了。

    5K20

    Vite入门从手写一个乞丐版的Vite开始(下)

    type=template,这个源于上一篇文章里我们请求Vue单文件的模板部分是这么设计的,为什么要加个时间戳呢,因为不加的话浏览器认为这个模块已经加载过了,是不会重新请求的。...handleJsReload(file);// ++ } }); 普通js热更新就需要用到前面的依赖图数据了,如果监听到某个js文件修改了,先判断它是否在依赖图中,不是的话就不用管,是的话就递归获取所有依赖它的模块...,因为所有模块的最上层依赖肯定是index.html,如果只是简单的获取所有依赖模块再更新,那么每次都相当于要刷新整个页面了,所以我们规定如果检查到某个依赖是Vue单文件,那么就代表支持热更新,否则就相当于走到死胡同...currentChain.includes(importer)) { // 通过currentChain来存储已经遍历过的模块 // 递归再上层的依赖 if...,这要怎么解决呢,很简单,可以看到请求的App.vue的url是带了时间戳的,所以我们可以检查请求模块的url是否存在时间戳,存在则把它依赖的所有模块路径也都带上时间戳,这样就会触发重新请求了,修改一下模块路径转换方法

    3.2K30

    7.11 Git 工具 - 子模块

    如果你没有提交子模块的改动,那么运行一个子模块更新也不会出现问题,此时 Git 会只抓取更改而并不会覆盖子模块目录中未保存的工作。...为了确保这不会发生,你可以让 Git 在推送到主项目前检查所有子模块是否已推送。...子模块技巧 你可以做几件事情来让用子模块工作轻松一点儿。 子模块遍历 有一个 foreach 子模块命令,它能在每一个子模块中运行任意命令。 如果项目中包含了大量子模块,这会非常有用。...你需要进入到子模块目录中运行 git checkout . 来找回所有的文件。 你也可以通过 submodule foreach 脚本来为多个子模块运行它。...要特别注意的是,近来子模块会将它们的所有 Git 数据保存在顶级项目的 .git 目录中,所以不像旧版本的 Git,摧毁一个子模块目录并不会丢失任何提交或分支。

    1.7K20

    看Zepto如何实现增删改查DOM

    text 获取或者设置所有对象集合中元素的文本内容。当没有给定content参数时,返回当前对象集合中第一个元素的文本内容(包含子节点中的文本内容)。...需要注意的地方是cloneNode方法不会复制添加到DOM节点中的Javascript属性,例如事件处理程序等,这个方法只复制特性,子节点,其他一切都不会复制,IE在此存在一个bug,即他会赋值事件处理程序...return this.each(function (index) { // contents => 获取当前元素的所有子节点(包括元素节点和文本节点) var self = $(...unwrap 移除集合中每个元素的直接父节点,并把他们的子元素保留在原来的位置 unwrap: function () { // 通过parent()获取当前元素集合的所有直接父节点 // 将获取到的父节点集合进行遍历...this.parent().each(function () { // 将该父节点替换为该父节点的所有子节点 $(this).replaceWith($(this).children

    2.9K90

    dotnet win32 判断传入路径是否在 U 盘

    我在制作一个类似 PPT 的工具,这个工具有超链接模块,我需要关注的是超链接文件是否链接到 U 盘上了已给出提示。...判断原理是判断可插拔的盘 遍历当前系统的所有磁盘,判断有哪些是 U 盘的方法如下 foreach (var driveInfo in DriveInfo.GetDrives()) { if (driveInfo.DriveType...此时不会抛出异常,只会让 DriveType 为 NoRootDirectory 类型 本文的核心代码如下 var path = @"H:\lindexi\test.txt"; var isUDiskPath...= IsUDiskPath(path); Console.WriteLine($"Path={path} 是 U 盘={isUDiskPath}"); foreach (var driveInfo...如果依然拉取不到代码,可以发邮件向我要代码 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git

    14810

    vivo官网App模块化开发方案-ModularDevTool

    最终开发了ModularDevTool,实现以下功能:1、开发阶段1.1、在主仓中,管理所有子仓代码(拉代码、切分支及其他git操作),管理子仓相关信息(代码仓路径、分支、版本等);1.2、只需要打开一个.../vsub.sh publish:一键编译所有子仓,并发布aar到maven4、subbuild目录用来输出子仓的git提交记录,subError目录用来输出子仓编译异常时的log。...5.1 代码管理vsub.sh脚本中封装了常用的git命令,用于批量处理子仓的git操作,实现逻辑相对简单,利用shell脚本将git命令封装起来。比如 ..../vsub.sh -pull的实现逻辑,首先是cd进入submodules目录(submodules目录存放了所有子仓代码),然后遍历进入子仓目录执行git pull --rebase命令,从而实现一个命令完成对所有子仓的相同.../vsub.sh publish命令实现一键编译所有子模块aar并上传maven。

    1.1K30

    【优化】记一次通过工具减少 Git 冲突

    我能想到的就是模块细分化,每个人都负责自己相关的模块,这样开发者之间的代码就不会相互影响,也就不会有代码的冲突。...探索:对象属性遍历有顺序么? 我们常说,数组遍历是有顺序的,也经常说对对象遍历是无序的。 但实际上我理解这个“无序”指的只是不会按照属性排列前后的顺序而已,对象属性遍历本身是有自己的一套规则的。...其次遍历所有字符串键,按照加入时间升序排列 最后遍历所有 Symbol 键,按照加入时间升序排列 回顾实现——也存在类似问题 上面的实现中,我是先根据属性的 value 值排序,如果 value 值相同再根据...,因为首先遍历所有数值键,按照数值升序排列。...其次遍历所有字符串键,按照加入时间升序排列。

    1.2K30

    剖析Vue原理&实现双向绑定MVVM

    不过这些并不会影响大家的阅读和理解,相信看完本文后对大家在阅读vue源码的时候会更有帮助 本文所有相关代码均在github上面可找到 https://github.com/DMQ/mvvm 相信大家对mvvm...observe的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter和getter 这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化。。...== 'object') { return; } // 取出所有属性遍历 Object.keys(data).forEach(function...fragment.appendChild(child); } return fragment; } }; compileElement方法将遍历所有节点及其子节点...'' : value; }}; 这里通过递归遍历保证了每个节点及子节点都会解析编译到,包括了{{}}表达式声明的文本节点。

    3.4K70

    git submodule 管理子项目

    使用场景 拆分项目,当项目越来越大之后,我们希望 子模块 可以单独管理,并由 专门 的人去维护,这个时候只可以使用 git submodule 去完成。...常用命令 git clone --recursive # 递归方式克隆整个项目 git submodule add path # 添加子模块 git...submodule init # 初始化子模块 git submodule update # 更新子模块 git submodule foreach git pull # 拉取所有子模块 使用方式 添加子模块...更新子模块 如果子模块和新的修改,但是父项目没有更新到最新,则可以使用 git submodule foreach git pull 将所有的子项目中更新,如果子项目比 .gitmodules 新,则需要更新一下...删除子模块 首先需要 git rm --cached ,然后依次删除对应的目录、.gitmodules 文件中的记录、 .git/cofig 中的记录。

    99720
    领券