如何让 git 默认忽略对子模块的更改

2023-11-23

由于 Git 中引入了 gitmodules,我喜欢像这样添加它们:

[submodule "actionbarsherlock"]
path = actionbarsherlock
url = git://github.com/JakeWharton/ActionBarSherlock.git
ignore = dirty

这里重要的部分是ignore = dirty.

当使用git submodule add命令,我被迫自己添加这一行.gitmodules file.

我怎样才能使它成为每个人的默认行为git submodule add未来我会做吗?

我知道关于submodule.<name>.ignore配置,但如何默认应用到所有?


2014:请注意,即使有这样的配置,git 2.0.1(2014 年 6 月 25 日)仍然会向您显示已上演的子模块。

See 提交 1d2f393 by 延斯·莱曼 (jlehmann)

当前设置submodule.<name>.ignore and/or diff.ignoreSubmodules to "all" 抑制 diff 系列、状态和提交的子模块更改的所有输出。

对于状态和提交来说,这确实令人困惑,因为即使用户选择通过手动添加来记录被忽略的子模块的新提交,此更改也不会显示在要提交的更改下。
雪上加霜的是,稍后的“git commit”将错误显示“nothing to commit" 当仅暂存被忽略的子模块时。

通过制作来解决这个问题wt_status无论配置了什么忽略设置,始终打印分阶段的子模块更改。
唯一的例外是当用户明确使用“--ignore-submodules=all" 命令行选项,在这种情况下子模块输出仍然被抑制。
这也使得“git commit当仅暂存被忽略的子模块的修改时,再次工作,因为该命令使用wt_statusstruct 来确定是否存在分阶段更改。

也可以看看提交 c215d3d为了git commit part.


雪上加霜的是,当仅暂存被忽略的子模块时,稍后的“git commit”将会错误并显示“无可提交”。

Actually... with Git 2.42 (Q3 2023), even when diff.ignoreSubmodules tells us to ignore submodule changes, "git commit"(man) with an index that already records changes to submodules should include the submodule changes in the resulting commit, but it did not.
And this has been fixed!

See commit 5768478 (14 Jun 2023) by Josip Sokcevic (sokac).
(Merged by Junio C Hamano -- gitster -- in commit 4ee088d, 23 Jun 2023)

diff-lib: honor override_submodule_config标志位

Signed-off-by: Josip Sokcevic

When diff.ignoreSubmodules = all已设置并且子模块提交是手动暂存的(例如通过git-update-index), git-commit应记录更新子模块的提交。

index_differs_from被调用自prepare_to_commit标志设置为override_submodule_config = 1.
index_differs_from然后合并默认的差异标志和传递的标志。

When diff.ignoreSubmodules被设定为 ”all", flags最终两者兼而有之override_submodule_config and ignore_submodules设置为 1。这会导致git-commit忽略分阶段提交。

这个补丁恢复原来的flags.ignore_submodule if flags.override_submodule_config is set.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 git 默认忽略对子模块的更改 的相关文章

  • `git rm --cached` 和 `git update-index --assume-unchanged` 之间的区别?

    我不明白之间的区别git rm cached and git update index assume unchanged 我知道git rm cached
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • Git 不断提示我输入密码

    我已经使用 Git 一段时间了 但是不断要求输入密码开始让我感到厌烦 我使用的是 Mac OS X 和 GitHub 并且按照 GitHub 的说明设置了 Git 和我的 SSH 密钥设置 Git 页面 http help github c
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 如何解决 VSTS 中拉取请求中的合并冲突?

    我已经创建了拉取请求 我进入了这个 批准 按钮不执行任何操作 并且 完成 被禁用 如何解决拉取请求中的冲突 Update 微软刚刚添加了基于浏览器的合并 这可能会让你摆脱小冲突的困境 并提供自 Sprint 150 起改进了不同场景的可视化
  • 代表 Git 存储库的数学结构是什么

    我正在学习 Git 如果我能描述一下代表 Git 存储库的数学结构 那就太好了 例如 它是一个有向无环图 它的节点代表提交 它的节点有代表分支等的标签 每个节点最多一个标签 没有标签使用两次 我知道这个描述不正确 我只是想解释我正在寻找的内
  • 在 github 上的 fork 中跟踪上游的最佳实践

    摘要 对于要维护一组本地更改的上游存储库 处理长期运行跟踪的最佳实践是什么 我想让 github 上的 fork 与上游保持同步 但仍然允许清晰跟踪 fork 特有的更改 对于本次讨论 假设upstream指向主项目存储库并且origin指
  • 如何将更改移出主分支

    基本问题 但这一直发生在我身上 进行更改working branch 切换到master git merge working branch git push cap deploy 到舞台 泡一杯新茶 然后我回来思考其他事情并开始做出一些改变
  • 哪个是更智能的 git 协议,ssh 或 git(通过 ssh)或 https 协议?

    哪个高效 SSH 或 Git 文件压缩 我对 Git 的理解是 git 协议很智能 因为通信两端都有一个协议代理来压缩文件传输 从而通过有效地使用网络带宽来实现更快的克隆 From 我发现了以下说法 For secure authentic
  • git 显示已添加到 gitignore 的文件中的更改?

    我已经将 log2 文件夹和 main js 文件添加到 gitignore 如屏幕截图所示 但即使执行后git rm cached r我仍然可以看到 git 正在检测 main js 和 log2 文件夹内文件的更改 怎么会 这些的常见问
  • 格里特:! [远程拒绝] HEAD -> refs/publish/master (没有新的更改)

    我做了一些更改 提交了它们并将分支推送到 Gerrit git push gerrit 现在我的更改没有出现在 Gerrit 中 我认为这是因为我手动推送更改而不是使用git 审查 https github com openstack in
  • 致命:.git/info/refs 无效:这是一个 git 存储库吗?

    我有一个托管在 Assembla 上的 Git 存储库 我正在尝试执行以下操作 git push u origin master 我一遍又一遍地收到以下错误 fatal https url repo name git info refs n
  • 使用终端时 Git 推送在总计后卡住了?

    我尝试将一些文件推送到Github 总大小只有22 2M 我不知道为什么它在总行之后卡住了 我读过推送到 Github 时 Git 推送挂起 https stackoverflow com questions 16906161 git pu
  • git 日志历史记录图,每次提交一行,彩色,带有日期

    我需要的格式如下 git log decorate graph oneline date order 但我也需要它 包含日期 短 具有相同的颜色 I tried git log decorate graph oneline date ord
  • git 认为文件已更改

    我在一台机器上对一个项目做了一些工作 然后推送到 github 在另一台机器上克隆并做了一些工作 然后推送 然后我回到第一台机器并做了一个pull 现在 第一台机器认为项目中最初的所有文件都已更改 我试过了 git checkout f a
  • `git Reset HEAD file` 是否也检查该文件?

    我错误地向 git 添加了一个目录 当我按照提示操作时here https stackoverflow com questions 348170 undo git add通过执行以下操作来撤消添加git reset HEAD
  • GIT:以下未跟踪的工作树文件将被签出覆盖

    我有两个分支 一个称为 master 另一个称为 dev 我目前位于 master 分支 我想转到 dev 分支将文件移动到开发服务器 但是当我执行 git checkout dev 我收到消息 以下未跟踪的工作树文件将被覆盖 查看 pag
  • 如何克隆特定的 Git 标签

    From git clone 1 手册页 http git scm com docs git clone branch还可以在结果存储库中的该提交处获取标签并分离 HEAD 我试过 git clone branch
  • 当 .gitattributes 中的 EOL 设置为 CRLF 时,Git diff 认为行结尾为 LF

    当我恢复对带有 Windows 行结尾的文件的更改并且 gitattributes 将 EOL 定义为 CRLF 时 git 认为行结尾已更改为 LR 即使十六进制编辑器显示 CRLF 仅当 gitattributes 定义 EOL 字符时
  • 如何使用 AWS Lambda 安装 Git?

    我在代码提交存储库中有代码 我正在编写一个 lambda 函数来为代码提交存储库的每个签入 事件 构建代码 我无法安装 git 因此无法克隆存储库 我该怎么办呢 正如其他人提到的 在 lambda 上安装 git 要么非常困难 要么完全不可

随机推荐

  • 是否可以启用 source.organizeImports 而不删除未使用的导入?

    这就是我的用户中的内容settings json editor codeActionsOnSave source organizeImports true 喜欢这种排序 但不喜欢 Visual Studio Code 删除未使用的导入而不是
  • 如何在 Android 中创建滑块屏幕(如 Tweetdeck 中)?

    我们想要创建一个应该具有不同列表视图的屏幕 并且用户可以滑动 向左或向右 查看另一个列表视图 就像在 TweetDeck 和某些 Android 操作系统版本的主屏幕中一样 还有一个点列表 用于标识有多少列表视图 Please refer
  • SQL查询按时间戳的月份部分分组

    我真的不擅长 SQL 查询 但我正在学习 所以请原谅这个问题 这是我当前的查询 SELECT TIMESTAMP SUM electricity AS electricity siteID FROM table WHERE MONTH Ti
  • 重新生成会话 ID

    我正在考虑在每个页面上使用此代码以减少会话劫持的可能性 通过在每个请求上更新 session id if empty session session start 实现这一目标的另一种方法是这样做 if empty session sessi
  • window.requestFileSystem 不工作

    我正在 Firefox IE 9 Chrome 和 Opera 上尝试下面的代码 但是 onInitFs fs 函数没有被调用 如果我将 添加到 window requestFileSystem window PERSISTENT 1024
  • conda install -c anaconda gcc_linux-64 未使用

    我想在没有 root 访问权限的服务器上安装 gcc 的更新版本 我试过conda install c creditx gcc 7这不起作用 然后我发现conda install c anaconda gcc linux 64实际上安装了g
  • 来自 FBO 的 glReadPixels 因多重采样而失败

    我有一个带有颜色和深度附件的 FBO 对象 我渲染它然后使用它读取glReadPixels 我正在尝试添加多重采样支持 代替glRenderbufferStorage 我正在打电话glRenderbufferStorageMultisamp
  • .Net函数调用(C# F#) VS C++的性能

    由于 F 2 0 已成为 VS2010 的一部分 我对 F 产生了兴趣 我想知道使用它有什么意义 我读了一点 并制定了一个基准来衡量函数调用 我用过阿克曼函数 C sealed class Program public static int
  • gitlab 通过命令行获取特定分支的 tar

    我用的是gitlab 当我进入界面时 在每个分支上我都可以下载 zip tar 或其他形式的源代码 我正在制作 rpm 规范文件 我需要能够使用命令行下载 tar 球 因为我添加了我的 rsa 密钥 所以我可以毫无问题地进行 git 克隆
  • “或”运算符不返回布尔值的动机是什么?

    首先 代码 gt gt gt False or hello hello 这种令人惊讶的行为可以让您检查是否x is not None并检查值x一行 gt gt gt x 10 if randint 0 2 1 else None gt gt
  • 使用核心动画 (CAKeyFrameAnimation) 调整 UIView 的大小和移动

    这可能吗 我可以更改图层的不透明度和位置 中心 但每当我尝试更改大小或原点时 它都不起作用 CAAnimationGroup anigroup CAAnimationGroup new CGMutablePathRef thePath CG
  • 使用异步而不等待

    我想让一个函数异步 所以我只需添加async像这样 public async static void something 可以看到它的返回类型是void 我只想异步调用这个函数而不阻塞 因为 return 是void so no await
  • WCF 跟踪。如何获得关闭连接的确切原因?

    在我的 WCF 服务中 当尝试传输大数据时 我不断收到错误 底层连接已关闭 连接意外关闭 我想知道是什么特殊原因引发了这个错误 所以我设置了WCF 跟踪并且可以阅读痕迹 svclog file 问题是 我可以在这个文件中看到很多有关流程流程
  • “向后移植”的工作流程更改为不同的 Mercurial (Hg) 分支?

    我们有两个头 一位是我们的主要开发负责人 另一位是我直到今天才忘记的 我们发现了一个错误并在我们的主开发分支中修复了它 我刚刚意识到它也应该在旧分支中修复 我认为最好对旧分支进行更改并将其与最新分支合并 但我们没有这样做 Mercurial
  • Gradle 找不到依赖项 com.google.android.gms:play-services

    自从我将 Android Studio 升级到 3 0 0 后 我遇到了问题 我找不到com google android gms play services不再了 添加此依赖项后 当我尝试同步我的项目时 我收到以下消息 Failed to
  • 仅允许在文档开头进行 XML 声明

    我的博客提要今天显示错误 此页面包含以下错误 第 2 行第 6 列错误 仅允许在文档开头进行 XML 声明 下面是出现第一个错误之前的页面呈现 我的博客供稿 http feeds feedburner com klassicblog 我的博
  • 下载文件时如何为 NSURLConnection 制作进度条?

    我想在使用 NSURLConnection 进行下载时显示进度条 当我从服务器获取数据时 我可以更新每个收到的包的 UI 但问题是 我如何知道我已经有多少数据 以及需要下载多少数据 可能以字节为单位 然后我必须做一些数学运算才能得到百分比
  • Groovy 弃用的方法和 Eclipse - 排序

    我在 groovy 1 8 中编写了以下代码 someListOfLists flatten sort unique 我已经转移到 groovy 2 3 x 并且 eclipse 使用来自快照版本的 Juno 的 e4 4 GroovyEc
  • 本地主机拒绝连接 Visual Studio 中的错误

    我已从另一个系统复制了我的解决方案文件并尝试在我的计算机上运行它 为此 我转到项目文件夹并删除了以前的解决方案文件并复制了新的解决方案文件 现在 它开始给我错误 连接被拒绝等 所以 我从这里得到了一个解决方案 尝试连接到运行 IISExpr
  • 如何让 git 默认忽略对子模块的更改

    由于 Git 中引入了 gitmodules 我喜欢像这样添加它们 submodule actionbarsherlock path actionbarsherlock url git github com JakeWharton Acti