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

git add mysubmoduledir“不匹配任何文件”,尽管该子模块有新的提交

问题描述: 当执行命令"git add mysubmoduledir"时,出现"不匹配任何文件"的错误提示,尽管该子模块有新的提交。

回答: 这个问题通常是由于子模块的更改没有被正确地添加到父仓库中导致的。下面是解决该问题的步骤:

  1. 确保子模块的更改已经被提交到了子模块的仓库中。可以使用以下命令进入子模块目录并提交更改:
  2. 确保子模块的更改已经被提交到了子模块的仓库中。可以使用以下命令进入子模块目录并提交更改:
  3. 返回到父仓库的根目录,并执行以下命令来更新父仓库对子模块的引用:
  4. 返回到父仓库的根目录,并执行以下命令来更新父仓库对子模块的引用:
  5. 如果步骤2中的命令仍然提示"不匹配任何文件",则可能是由于.gitmodules文件中的子模块路径不正确导致的。可以通过编辑.gitmodules文件来修复路径。确保.gitmodules文件中的子模块路径与实际子模块目录的路径一致。
  6. 提交修复后的.gitmodules文件:
  7. 提交修复后的.gitmodules文件:
  8. 再次执行步骤2中的命令来更新父仓库对子模块的引用。

以上步骤应该能够解决"不匹配任何文件"的问题,并将子模块的更改正确地添加到父仓库中。

关于Git和子模块的更多信息,可以参考腾讯云的产品文档:

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

相关·内容

Git 中文参考(四)

如果与任何 URL 都不匹配,发生错误并且没有任何更改。 使用--push,操纵推送 URL 而不是获取 URL。 使用--add,不添加现有 URL,而是添加新 URL。...如果子模块未初始化,则每个 SHA-1 可能以-为前缀,如果当前检出的子模块提交与包含存储库的索引中找到的 SHA-1 不匹配,则+和U如果子模块有合并冲突。...有关默认远程的定义,请参阅 add 子命令。...如果多次给出,则将累积模式列表,并且将排除匹配任何模式的标签。与–match 结合使用时,如果标记与至少一个匹配模式匹配且与任何–exclude 模式不匹配,则会考虑使用该标记。...如果命令行上没有包含模式,则默认情况下使用与任何包含/排除模式不匹配的路径的修补程序,如果存在任何包含模式,则忽略该修补程序。

21510

Git中文命令大全

用户可检查是否有给定的文件被忽略, 不管是否已存在于工作树中 --no-warn-embedded-repo # 默认情况下, git add向嵌入式存储库添加索引时会发出警告,...可以使用任何过滤字符的组合(包括无)当*(全部或无)添加到组合中时,如果有任何文件与比较中的其他条件匹配,则选择所有路径; 如果没有与其他标准匹配的文件,则不会选择任何内容 -S...# 当在命令行上给出文件时,该命令将提交指定文件的内容,而不记录已经执行的更改 【rest】 语法: git reset [-q] [] [--] …​...和git-merge --[no-]recurse-submodules[=yes|on-demand|no] # 该选项控制是否应该提取和更新所有已填充子模块的新提交 与合并有关的选项:...不要从远程站点获取新的对象。 --checkout # 该选项仅对更新命令有效。检查子模块中分离的HEAD上超级项目中记录的提交。

30000
  • Git系列之查看状态

    换句话说,所有已跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。...git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。 3、暂存已修改文件 现在我们来修改一个已被跟踪的文件。...要暂存这次更新,需要运行 git add 命令。 这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。...星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)...所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。

    1.3K10

    Git 中文参考(二)

    因此,在对工作树进行任何更改之后,在运行 commit 命令之前,必须使用add命令将新的文件或有改动的文件添加到暂存区中。 在提交(commit)之前可以多次执行此命令。...子模块具有未跟踪的文件,因为子模块中的修改内容或未跟踪文件无法通过超级项目中的git add添加以准备提交。 m 和 ? 递归应用。例如,如果子模块中的嵌套子模块包含未跟踪的文件,则报告为 ?...路径名与任何模式都不匹配的所有文件都是最后输出的,就好像文件末尾有一个隐式匹配所有模式一样。如果多个路径名具有相同的等级(它们匹配相同的模式但没有早期模式),则它们相对于彼此的输出顺序是正常顺序。...…​ 在命令行上提供文件时,该命令将提交指定文件的内容,而不记录已暂存的更改。这些文件的内容也会在之前的演出之上进行下一次提交。...因此: 警告:不鼓励运行 git merge 并进行非平凡的未提交更改:尽管可能,但如果发生冲突,可能会使您处于难以退出的状态。

    20810

    2.2 Git 基础 - 记录每次更新到仓库

    换句话说,所有已跟踪文件在上次提交后都未被更改过。 此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。...git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。 暂存已修改文件 现在我们来修改一个已被跟踪的文件。...星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)...所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。...比方说: $ git rm log/\*.log 注意到星号 * 之前的反斜杠 \, 因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。

    64210

    Git 中文参考(一)

    GIT_OPTIONAL_LOCKS 如果设置为0,Git 将完成任何请求的操作,而不执行任何需要锁定的可选子操作。例如,这将阻止git status刷新索引作为副作用。...--add 在不更改任何现有值的情况下向选项添加新行。这与在--replace-all中以 ^ $ 作为 value_regex 的值相同。...要添加新代理,而不更改任何现有代理,请使用 % git config --add core.gitproxy '"proxy-command" for example.com' 在脚本中使用配置中的自定义颜色的示例...如果值为 check,然后 Git 将验证在要推送的修订版本中更改的所有子模块提交在子模块的至少一个远程处可用。如果缺少任何提交,则推送将中止并以非零状态退出。...当多个 pushInsteadOf 字符串与给定的 URL 匹配时,将使用最长匹配。如果一个遥控器有一个明确的 pushurl,Git 将忽略该遥控器的这个设置。

    29720

    Git 中文参考(五)

    -v --invert-match 选择不匹配的行。 -h -H 默认情况下,该命令显示每个匹配的文件名。 -h选项用于抑制此输出。...如果工作树和远程存储库的索引与当前检出的提交有任何差异,则默认拒绝这样的推送;当工作树和索引都与当前提交匹配时,它们会更新以匹配新推送的分支提示。此挂钩用于覆盖默认行为。...更高级别的 Git 工具,例如 git status 和 git add ,使用上面指定的来源的模式。 模式格式 空行不匹配任何文件,因此它可以作为可读性的分隔符。 以#开头的行作为注释。...或者,您可以使用,而不是预先运行 git add $ git commit -a 它会自动注意任何修改过的(但不是新的)文件,将它们添加到索引中,然后一步一步地提交。...Git 的add命令执行更简单和更强大的功能: git add 用于新修改的文​​件和新修改的文​​件,在这两种情况下,它都会获取给定文件的快照,并在索引中显示内容,准备好包含在下一次提交中。

    22310

    Git 中文参考(三)

    路径名与任何模式都不匹配的所有文件都是最后输出的,就好像文件末尾有一个隐式匹配所有模式一样。如果多个路径名具有相同的等级(它们匹配相同的模式但没有早期模式),则它们相对于彼此的输出顺序是正常顺序。...当超级项目检索到更新子模块对尚未在本地子模块克隆中的提交的引用的提交时,使用 _ 按需 _ 仅递归到填充的子模块。 -j --jobs= 用于获取子模块的并行子节点数。...例如,上游在超级项目的刚刚提取的提交中添加了一个新的子模块,子模块本身无法获取,因此无法在以后检查该子模块而无需再次进行提取。预计将在未来的 Git 版本中修复。...警告:在旧版本的 Git 中,不鼓励使用未提交的更改运行 git pull :尽管或许可行,但它可能会使您处于难以退出的冲突状态 如果任何远程更改与本地未提交的更改重叠,则将自动取消合并并且不更改工作树...例如,当上游在超级项目的刚刚提取的提交中添加了一个新的子模块,子模块本身无法获取,因此无法在以后检查该子模块而无需再次进行提取。这预计将在未来的 Git 版本中被修复。

    19910

    Git 总结

    回退 git reset # 回退到某commit, 仅回退commit信息,不会改变工作区任何文件(非常快,因为其实没有任何文件的改变) # 如果你的改动没有 push 到远程,可以通过此方式,将直接改变...情景1: 拥有对子模块远程仓库权限,直接修改子模块路径中的文件 本地开发调试子模块结束后, 进入子模块路径 add, commit, push, 然后主项目 git add 子模块路径,git commit...这时会发现 new commits, git add 即可 情景2: 子模块对应的远程仓库有更新,本地子模块内容过时 本地进入子模块路径,git pull 子模块更新,然后返回主项目根目录, git...更新 如果在本地修改子仓库,在主仓库 git status会显示子仓库有修改。 需要先在子仓库提交,然后再到主仓库提交代码。...不能提交 解决方法: 查看git 的设置 git config --get core.ignorecase 发现默认是不区分大小的,因此当你修改了文件名 (或文件夹名) 的大小写后,git并不会认为你有修改

    1.1K40

    【Git|GitHub|SSH|Sourcetree 上篇】Git环境搭建及核心概念学习

    它在现有目录中添加一个隐藏的子文件夹,所以这里我们需要按下面操作使其显现,该子文件夹包含版本控制所需的内部数据结构。...git commit 将快照保存到项目历史记录中并完成更改跟踪过程。 简言之,提交就像拍照一样。 任何使用 git add 暂存的内容都将成为使用 git commit 的快照的一部分。...这些是新暂存(用 git add 添加的)和提交(用 git commit 提交的)到主仓库的文件和目录。...表示不忽略(跟踪)匹配到的文件或目录; 示例 解释 # 此为注释 表示注释, 将被忽略 或/ *代表所有,即忽略.gitignore所在根目录下所有文件 *.html 忽略所有后缀名为.html的文件...js 不忽略所有后缀名为.js的文件 Note:git 对于 .gitignore 配置文件时是按行从上到下进行规则匹配的,即如果上面的配置范围较大时,下面的配置可能无效 下面为可能无效原因:

    1.5K10

    Git Pro深入浅出(二)

    # 从栈上删除储藏 $ git stash drop stash@{2} # 应用后立即删除 $ git stash pop (1)创造性的储藏 不储藏任何你通过 git add 命令已暂存的东西...如果你有正在做的工作,要么提交到一个临时分支要么储藏它。这使你可以撤消在这里尝试做的任何事情。...新的提交 ^M 与 C6 有完全一样的内容,所以从这儿开始就像合并从未发生过,除了“现在还没合并”的提交依然在 HEAD 的历史中。...(5)在子模块与主项目中同时做修改 到目前为止,当我们运行 git submodule update从子模块仓库中抓取修改时,Git将会获得这些改动并更新子目录中的文件,但是会将子仓库留在一个称作“...checkout -b featureA' (7)子模块的问题 问题一:在有子模块的项目中切换分支可能会造成麻烦 如果你创建一个新分支,在其中添加一个子模块,之后切换到没有该子模块的分支上时,

    1.2K31

    Git常用命令参考手册

    # 这一步可选,如果你真的想创建一个没有任何文件的分支 git add -A && git commit -m "提交" # 添加并提交,否则分支是隐藏的 (执行这一步之前需要注意当前工作区必须保留一个文件...2、编辑目录下的 .gitmodules 文件把需要删除的子模块删除掉 # 最后直接推送 git add -A git commit -m "删除子模块" git push 克隆一个包含子模块的仓库...git subtree 劣势: 命令过于复杂, 推送拉取都很麻烦 虽然用于替代子模块, 但使用率并没有子模块广泛 子仓库和主仓库混合在一起, 历史记录相当于有2个仓库的记录 git subtree 命令用法...main --squash 推送到子仓库 假如修改了子仓库里的内容,可以将修改这部分的内容推送到子仓库中 # 需要先在主仓库把子仓库的代码暂存 git add sub/common git commit...描述 feat 该提交含有新的特性 style 通常是代码格式的修改 chore 构建过程或辅助工具的变动 fix 修复Bug docs 文档修改 test 单元测试改动 refactor 代码重构

    1.4K60

    发布 Go Modules

    = want { t.Errorf("Proverb() = %q, want %q", got, want) } } $ 接下来,创建一个新的 git 存储仓库并添加一个初始提交...普通版本比预发布版本更受 go 命令的青睐,但是如果您的模块有任何普通版本,用户要想获得您的预发布版本必须明确指定版本(例如,gogetexample.com/hello@v1.0.1-alpha)。...伪版本是预发布版本的一种特殊类型。当用户需要依赖于尚未发布任何语义版本标记的项目,或者需要针对尚未标记的提交进行开发时,伪版本非常有用,但用户不应假定伪版本提供了稳定或经过良好测试的 API。...标记一个新版本有几个步骤: 1.运行 go mod tidy 命令,这将消除模块可能积累的不再需要的任何依赖项 2.跑去单元测试 go test ./..,以确保一切正常 3....v1 的主要版本告诉用户,不会对模块的 API 进行不兼容的更改。它们可以升级到 v1 新的次要版本和补丁版本,它们的代码不会出现不兼容的错误。函数和方法签名不会更改,导出的类型不会被移除,等等。

    74510

    Python 进阶指南(编程轻松进阶):十二、使用 Git 组织您的代码项目

    在这一章中,我们将为一个名为wizcoin的模块创建一个仓库协议,该模块处理虚拟巫师货币的帆船、镰刀和克努特硬币。cookiecutter模块使用模板为几种不同类型的项目创建启动文件。...git status的输出也有 Git 命令的提醒,这些命令将文件转移到其他状态。 为什么要暂存文件? 您可能想知道阶段状态有什么意义。为什么不直接在修改的和提交的之间切换,而不升级文件呢?...要添加每个未跟踪的文件,使用一个点号(.)告诉 Git 匹配所有文件: C:\Users\Al\wizcoin>git add ....回滚一个更改实际上添加了一个新的更改,该更改将文件的内容设置为前一次提交时的状态。...运行git revert -n HEAD~3..HEAD来撤销这些更改,然后运行git add .和git commit -m " "来提交该内容,就像您处理任何其他更改一样

    1.3K30

    Git必备命令-子模块

    开始使用子模块 我们首先将一个已存在的 Git 仓库添加为正在工作的仓库的子模块。你可以通过在 git submodule add 命令后面加上想要跟踪的项目的相对或绝对 URL 来添加新的子模块。...当你在克隆这样的项目时,默认会包含该子模块目录,但其中还没有任何文件: $ git clone https://github.com/chaconinc/MainProject Cloning into...但是在仓库中保留跟踪信息更有意义一些,因为其他人也可以得到同样的效果。这时我们运行 git status,Git 会显示子模块中有“新提交”。...add" and/or "git commit -a") 从项目远端拉取上游更改 现在,让我们站在协作者的视角,他有自己的 MainProject 仓库的本地克隆, 只是执行 git pull 获取你新提交的更改还不够...然而,它不会 更新 子模块。这点可通过 git status 命令看到,它会显示子模块“已修改”,且“有新的提交”。

    1.1K20

    Git 最全教程

    比如 README $ git add README 忽略文件 我们有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。...星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)...lib.a # 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO /TODO # 忽略任何目录下名为 build 的文件夹 build/ # 忽略 doc/notes.txt,但不忽略...跳过使用暂存区域 尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。...比如: $ git rm log/\*.log 注意到星号 * 之前的反斜杠 \, 因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。

    1.4K10

    6 个最佳的 Git 仓库管理实践

    如果它是二进制文件,那它是由什么生成的。是否有充分的理由不在构建时生成它们,而是将它们提交到仓库?...必须谨慎对其更新,因为你每提交一个二进制大文件的变化,它的存储空间实际上都会加倍。 让第三方库留在第三方 第三方库也不例外。...从技术上讲,对库有信心的人只对该库的主副本有把握,而不是对随机仓库的副本有把握。如果你需要锁定特定版本的库,请给开发者提供一个合理的项目所需的发布 URL,或者使用 Git 子模块。...抵制盲目的 git add image.png 如果你的项目已编译,请抵制住使用 git add . 的冲动(其中 . 是当前目录或特定文件夹的路径),因为这是一种添加任何新东西的简单方法。...用 IDE 管理项目时,跟踪添加到仓库中的内容会非常困难,因此仅添加你实际编写的内容非常重要,而不是添加项目文件夹中出现的任何新对象。 如果你使用了 git add .

    65920

    Git 中文参考(六)

    路径名与任何模式都不匹配的所有文件都是最后输出的,就好像文件末尾有一个隐式匹配所有模式一样。如果多个路径名具有相同的等级(它们匹配相同的模式但没有早期模式),则它们相对于彼此的输出顺序是正常顺序。...使用“none”时,如果子模块包含未跟踪或修改的文件,或者其 HEAD 与超级项目中记录的提交不同,则可以使用“无”来修改子模块,并可用于覆盖中 ignore 选项的任何设置 git-config [1...该命令有三个参数,(a)要反对的原始树,(b)新的树结果,(c)目标 Subversion 存储库的 URL。...如果不至少进行一次“修复”文件以匹配标记内容的提交,则无法在 Git 中导入这些标记。...悬挂提交可以是根节点。 hash mismatch 数据库有一个对象,其哈希值与对象数据库值不匹配。这表明存在严重的数据完整性问题。

    28910
    领券