首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何添加和提取在.gitmodules文件中指定的子模块,即使它们没有添加到当前存储库中

在.gitmodules文件中指定的子模块可以通过以下步骤进行添加和提取,即使它们没有添加到当前存储库中:

  1. 添加子模块:
    • 打开终端或命令行工具,并导航到存储库的根目录。
    • 使用以下命令添加子模块:
    • 使用以下命令添加子模块:
    • 其中,子模块仓库URL是指子模块的远程仓库地址,子模块路径是指子模块在当前存储库中的相对路径。
    • 提交更改:
    • 提交更改:
  • 提取子模块:
    • 打开终端或命令行工具,并导航到存储库的根目录。
    • 使用以下命令初始化子模块:
    • 使用以下命令初始化子模块:
    • 使用以下命令更新子模块:
    • 使用以下命令更新子模块:
    • 如果子模块有更新,可以使用以下命令拉取最新的子模块代码:
    • 如果子模块有更新,可以使用以下命令拉取最新的子模块代码:

注意事项:

  • 在添加和提取子模块时,需要确保.gitmodules文件中已经正确指定了子模块的信息。
  • 在提交更改时,需要同时提交.gitmodules文件和子模块的相关文件。
  • 在拉取最新的子模块代码时,需要注意子模块的远程仓库是否可访问。

对于以上操作,腾讯云并没有特定的产品或服务与之直接相关。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

也许是第三方,或者你独立开发,用于多个父项目的。 所以需要提取一个公共提供给多个项目使用,但是这个library怎么git在一起方便管理呢?...只能在版本修改,是单向; submodule没有直接删除版本功能; subtree则可以实现双向数据修改。...而这正式git submodule核心原理,Git处理submodule引用时候,并不会去扫描仓库下文件变化,而是取仓库当前HEAD指向commithash值,当我们对子仓库进行了更改后...暂存区所以我们才发现了new commits这种提示语,Git并不关心子模块文件如何变化,我只需要在当前提交记录子模块commithash值即可,之后我们从父级仓库拉取仓库时候,Git拉取了本次提交记录模块...我们假设你一开始主仓库并没有采用子模块开发方式,而是另外开发分支使用了仓库,那么当你从开发分支切回到没有采用子模块分支时候,子模块目录并不会被Git自动删除,而是需要你手动删除了。

2.5K10
  • Git 中文参考(四)

    它使用.gitmodules相同设置作为模板。如果 URL 是相对,则将使用默认远程解析。如果没有默认远程,则假定当前存储位于上游。 可选参数限制将初始化哪些子模块。...如果指定了--force,则子模块将被检出(使用git checkout --force),即使包含存储索引中指定提交已经与子模块检出提交匹配。...运行更新时(仅对结帐过程有效),切换到其他提交时,丢弃子模块本地更改;并且始终模块运行 checkout 操作,即使包含存储索引列出提交与子模块中签出提交匹配也是如此。...FILES 初始化子模块时,使用包含存储顶级目录.gitmodules文件来查找每个子模块 URL。该文件格式应与GIT_DIR/config相同。...如果没有这些选项,该命令仅将补丁应用于文件,并且不要求它们位于 Git 存储。 此命令应用修补程序但不创建提交。

    21310

    Git实战

    ,我也会努力将其优化更加符合工作场景 说明 1、[…]内容,需要根据实际情况进行修改 如何本地与远程建立信任联系?...git remote remove origin #将本地所有文件添加到Git,进行监管 git add ....添加模块 git submodule add [远程仓库地址] [相对于父模块相对路径] 注: 直接手动更改gitmodule文件没有哦 远程仓库地址要先于子模块之前准备好 子模块名称是可以与...[相对于父模块相对路径]不一致 创建完成以后会生成.gitmodules与.gitattributes这两个文件 .gitmodules.git/config保存着子模块信息 从远程仓库获取所有模块数据...先清空.gitmodules内容 再执行文件删除 ———— 其他命令 # .gitmodules中子模块内容更新到.git/config git submodule init gitmodules

    86810

    Git 中文参考(一)

    以下描述将低级命令划分为操作对象(存储,索引工作树命令,询问比较对象命令,以及存储之间移动对象引用命令。...分支描述会自动添加到格式补丁封面信函或请求摘要。 browser..cmd 指定用于调用指定浏览器命令。 shell 中使用作为参数传递 URL 计算指定命令。...fetch.negotiationAlgorithm 控制协商服务器发送文件内容时如何发送有关本地存储提交信息。...submodule.alternateLocation 指定在克隆子模块时子模块如何获取备用模块。可能值为no,superproject。默认情况下,假定no,不添加引用。...在内部镜像情况下,分两步执行镜像,一个用于获取不受信任对象,然后执行第二次“推送”(将使用隔离区)到另一个内部存储,并让内部客户端使用此推送到存储,或禁止内部提取,只有完整“fsck”运行时才允许它们

    28420

    Git 中文参考(五)

    目前,以下操作是属性感知。 退房登记入住 当 git checkout git merge 等命令运行时,这些属性会影响存储存储内容如何复制到工作树文件。...它们还会影响 Git 如何在 git add git commit 存储您在存储工作树准备内容。 text 此属性启用并控制行尾标准化。...创建档案 export-ignore 具有export-ignore属性文件目录不会添加到存档文件。...所有子模块路径.gitmodules 文件必须是唯一。 submodule..url 定义可以从中克隆子模块存储 URL。....branch 用于跟踪上游子模块更新远程分支名称。如果未指定该选项,则默认为 master 。 .特殊值用于指示子模块中分支名称应与当前存储当前分支名称相同。

    21610

    Git Submodule项目子模块管理

    模块化与组件化 最近一直研究客户端组件化/模块化问题,除了将项目拆分为多个小模块,还会涉及到多个子模块管理问题。下面说一些模块化开发一些基本知识。...说明:每个业务模块都可以拥有自己独有的 SDK 依赖自己独有的 UI 资源 (如果是其他业务模块都可以通用 SDK 依赖 UI 资源 就可以将它们抽离到 基础 SDK(CommonSDK UI...使用命令git status可以看到多了两个需要提交文件,其中.gitmodules指定submodule主要信息,包括子模块路径地址信息,moduleA指定了子模块commit id,使用git...需要注意是,父项目的git并不会记录submodule文件变动,它是按照commit id指定submodulegit header,所以.gitmodulesmoduleA这两项是需要提交到父项目的远程仓库...删除子模块 删除子模块会涉及到以下几个步骤: 删除.gitsubmodule里相关部分; 删除.git/config 文件里相关字段; 删除仓库目录。

    85620

    Git 中文参考(二)

    请注意,使用-s克隆存储运行没有-l选项git repack会将源存储对象复制到克隆存储,从而节省clone -s磁盘空间节省。...例如,这样就可以安全地向源远程添加额外 fetch refspec。 由于当前实现限制,一些配置变量初始提取检出之后才会生效。已知未生效配置变量为:remote....它只添加指定文件 add 命令运行时刻内容;如果您希望下次提交(commit)包含后续更改,则必须再次运行git add以将新内容添加到暂存区。...-p --patch 以交互方式选择暂存区工作树之间修改,并将它们添加到暂存区。这使用户有机会在将修改后内容添加到暂存区之前查看差异。...--no-warn-embedded-repo 默认情况下,若未使用git submodule add.gitmodules创建条目时就向暂存区添加嵌入式存储,git add会发出警告。

    20210

    Git必备命令-子模块

    也许是第三方,或者你独立开发,用于多个父项目的。现在问题来了:你想要把它们当做两个独立项目,同时又想在一个项目中使用另一个。...开始使用子模块 我们首先将一个已存在 Git 仓库添加为正在工作仓库模块。你可以通过 git submodule add 命令后面加上想要跟踪项目的相对或绝对 URL 来添加模块。...本例,我们将会添加一个名为 “DbConnector” 。...当你克隆这样项目时,默认会包含该子模块目录,但其中还没有任何文件: $ git clone https://github.com/chaconinc/MainProject Cloning into...例如,你想要 DbConnector 子模块跟踪仓库 “stable” 分支,那么既可以 .gitmodules 文件设置 (这样其他人也可以跟踪它),也可以只本地 .git/config 文件设置

    1K20

    8. git-submodule 子模块

    模块添加 git submodule add 其中,url 为子模块路径,path 为该子模块存储目录路径。...执行成功后,git status 会看到项目中修改了.gitmodules,并增加了一个新文件夹(为刚刚添加路径) 使用命令 git status 可以看到多了两个需要提交文件,其中 .gitmodules...指定submodule 主要信息,包括子模块路径地址信息,moduleA 指定了子模块commit id,使用 git diff 可以看到这两项内容。...需要注意是,父项目的 git 并不会记录 submodule 文件变动,它是按照 commit id 指定 submodule git header,所以 .gitmodules moduleA...从存储删除所有 Git 缓存模块(Deleting all Git cached submodules from repository) # deinit all submodules from

    66320

    Git中文命令大全

    --separate-git-dir= # 不要将克隆存储放置它应该存在位置, 而应将克隆存储放置指定目录,然后创建一个与文件系统无关...# 工作树交互添加修改内容到索引 -p, --patch # 索引工作树之间交互地选择补丁块, 并将它们添加到索引 -e, --edit...,修改删除索引条目以匹配工作树 --no-all, --ignore-removal # 通过添加索引未知文件工作树修改文件来更新索引, 但忽略已从工作树删除文件没有使用...# 仅显示已更改文件名称状态 --submodule[=] # 指定如何显示子模块差异 --color[...可以使用任何过滤字符组合(包括无)当*(全部或无)添加到组合时,如果有任何文件与比较其他条件匹配,则选择所有路径; 如果没有与其他标准匹配文件,则不会选择任何内容 -S

    24300

    Git Submodules 介绍(通俗易懂,总结了工作完全够用 submodule 命令)

    如果某些文件项目A项目B中都会用到,例如组件,那么这些文件可以作为 submodules 来管理,减少重复代码。(当然,该场景下npm包是另一解决方案,你需要选择一种方案。)解决团队维护难题。...图片submodule 版本号主项目还保存了对应 submodule 版本号(commit id),没有冗余存储 submodule 代码。...这是更推荐方式。因为很多时候 submodule 是对主项目仓库有依赖。可能它是个组件没有运行环境,需要在主项目中debug。这点非常方便!...注意事项当你文件夹B做commit后,文件夹B里面就有了新 commit id。此时主项目A中所记录 submodule commit id也会更新。...,追踪任意指定模块分支(而非默认主分支master)。

    25.2K146

    git submodule 完整用法整理

    **.gitmodules**文件。...拉取所有子模块 2.1创建带子模块版本 例如我们要创建如下结构项目 project |--moduleA |--readme.txt 创建project版本,并提交readme.txt文件...,其中.gitmodules指定submodule主要信息,包括子模块路径地址信息,moduleA指定了子模块commit id,使用git diff可以看到这两项内容。...这里需要指出父项目的git并不会记录submodule文件变动,它是按照commit id指定submodulegit header,所以.gitmodulesmoduleA这两项是需要提交到父项目的远程仓库...,发现用下面的方式也可以,服务器记录是.gitmodulesmoduleA,本地只要用git删除命令删除moduleA,再用git status查看状态就会发现.gitmodulesmoduleA

    4.6K20

    Git 中文参考(三)

    X是一个独立根提交,它添加了一个新文件side,Y修改了它。 Y是 TREESAME 到X。它合并Q将side添加到P,Q将 TREESAME 添加到P,但不添加到Y。...可以使用过滤器字符任何组合(包括无)。当*(全部或全部)添加到组合时,如果有任何文件与比较其他条件匹配,则选择所有路径;如果没有与其他条件匹配文件,则不会选择任何内容。...例如,上游超级项目的刚刚提取提交添加了一个新模块,子模块本身无法获取,因此无法以后检查该子模块而无需再次进行提取。预计将在未来 Git 版本修复。...安全 设计提取推送协议目的不是为了防止一方窃取不打算共享其他存储数据。如果您需要保护私有数据免受恶意对等方攻击,那么最佳选择是将其存储另一个存储。这适用于客户端和服务器。...例如,当上游超级项目的刚刚提取提交添加了一个新模块,子模块本身无法获取,因此无法以后检查该子模块而无需再次进行提取。这预计将在未来 Git 版本中被修复。

    19310

    git submodule来管理独立git子目录

    软件开发过程,通常我们会遇到有一些通用部分希望抽取出来做成一个公共情况,比如安卓IOS都通用H5页面。而公共代码版本管理是个麻烦事情。...添加模块当前工程添加submodule,命令如下: git submodule add 仓库地址 路径 其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下路径。...注意:路径不能以 / 结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利 Clone) 命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules文件,其中记录了子模块信息。...添加完成以后,再将子模块所在文件添加到工程即可。...使用vim编辑.gitmodules(vim .gitmodule), 删除对应要删除submodule行. 2.

    2K20

    7.11 Git 工具 - 子模块

    你可以通过 git submodule add 命令后面加上想要跟踪项目 URL 来添加模块本例,我们将会添加一个名为 “DbConnector” 。...例如,你想要 DbConnector 子模块跟踪仓库 “stable” 分支,那么既可以 .gitmodules 文件设置(这样其他人也可以跟踪它),也可以只本地 .git/config 文件设置...到目前为止,当我们运行 git submodule update 从子模块仓库抓取修改时,Git 将会获得这些改动并更新子目录文件,但是会将仓库留在一个称作 “游离 HEAD” 状态。...如你所见,它也给我们了一些有用建议,指导接下来该如何做。 最简单选项是进入每一个子模块然后手动推送到远程仓库,确保它们能被外部访问到,之后再次尝试这次推送。...另一个主要告诫是许多人遇到了将子目录转换为子模块问题。 如果你项目中已经跟踪了一些文件,然后想要将它们移动到一个子模块,那么请务必小心,否则 Git 会对你发脾气。

    1.5K20

    git submodule 使用

    当我们要把另一个仓库代码作为子目录放到当前仓库时,为了防止代码冗余,我们应该使用 git 模块 submodule 功能。...我们可以添加多个子仓库。 提交 对主仓库、仓库都更新代码后,我们提交时,需要依次对两个仓库 repo 进行提交。...+Subproject commit 8ffcce923b69d314938ce5485f2ac022986aebcb-dirty 也就是说主仓库会记录当前文件夹所用子项目的 commit 号,所以应该先提交仓库...一些文章提到 --recursive 参数也是一样作用。 初始化更新 如果项目拉取时没有加上上面参数,那么需要手动初始化更新。...,运行: git submodule update 删除 还没提交 git 记录的话,把下载文件 .gitmodules 相关内容删除即可。

    88920

    Git 中文参考(六)

    除非指定了--stdout选项,否则输出文件名称将打印到标准输出。 如果指定了-o,则输出文件将在创建。否则,它们将在当前工作目录创建。...我不打算为此添加支持,因为为所有可能极端情况工作是非常困难耗时(Git 也没有这样做)。如果它们足够相似,Git 可以检测它们,则完全支持提交重命名复制文件。...160000:gitlink,对象 SHA-1 引用另一个存储提交。 Git 链接只能由 SHA 或提交标记指定它们用于实现子模块。 040000:一个子目录。...如果指定它被添加到存档文件名前面。 git archive 在给定树 ID 时与给定提交 ID 或标记 ID 时行为不同。第一种情况下,当前时间用作存档每个文件修改时间。... 如果没有可选路径参数,则当前工作目录所有文件子目录都将包含在存档。如果指定了一个或多个路径,则仅包括这些路径。 备用额外选项 压缩 -0 存储文件而不是缩小文件

    28410

    Git常用命令参考手册

    添加模块 添加完子模块后会发现根目录下多了个 .gitmodules 元数据文件,主要是用于管理子模块。...//github.com/xjh22222228/git-manual.git submodules/git-manual # 添加到指定目录 # -b 指定需要添加仓库某个分支 git submodule...git subtree 优势: 不会像子模块需要 .gitmodules 元数据文件管理 仓库会当做普通目录, 其实是没有仓库概念 支持较旧Git版本(甚至比v1.5.2还要旧)。...git subtree 劣势: 命令过于复杂, 推送拉取都很麻烦 虽然用于替代子模块, 但使用率并没有模块广泛 仓库主仓库混合在一起, 历史记录相当于有2个仓库记录 git subtree 命令用法...添加仓库 --prefix 指定仓库存储位置 main 是分支名称 --squash 通常做法是不将仓库整个历史记录存储主仓库,如果需要的话可以忽略整个参数 添加仓库后, 会跟普通文件一样看待

    1.4K60

    浅析 Git 子模块

    查找 那么,基于以上几点,如果不得不将第三方源码手动拷贝到项目中,又会带来更多问题: 第三方将难以保持同步更新 如果对第三方做出了较通用更改补丁等,无法发布到原为其他人所用 对第三方做出修改...比如一个通用组件作为子模块分别被公司不同项目引用,则各个项目组做出改进,最后都可以汇总到主组件,为大家所共享。 II. 如何用起子模块?...2.1 - 添加模块当前项目中,添加已有的第三方: git submodule add 3RD_LIB_GIT_PATH 默认情况下,子模块会自动放入一个与其仓库同名子目录末尾也可以加一个自定义路径参数...Tom's Changes" 2.7 - 删除子模块 从 .gitmodules 文件删除相关行 从 .git/config 删除相关部分 运行 git rm –cached 删除...subtree 用法如下: 4.1 - 第一次添加子目录,建立与 git 项目的关联 # 其中-f意思是添加远程仓库之后,立即执行fetch git remote add -f <仓库地址

    1.4K10
    领券