0
点赞
收藏
分享

微信扫一扫

Git 2.37 发布,带来重大变化!!


Git 2.37 发布,带来重大变化!!_文件系统

Git 源代码管理系统 2.37 版本周发布,新功能包括用于提高性能的内置文件系统监视器,现在在 Windows 和 Mac 上稳定,用于更好地管理已删除对象的杂乱包,以及完全集成支持稀疏克隆,避免了在只需要一部分时下载整个存储库的需要。

根据最近的一项调查,近 94% 的开发人员使用 Git,尽管我们的直觉是只有少数人探索更高级的功能。git 文档列出了大约 150 个命令

​​https://git-scm.com/docs/git​​

分为“porcelain”高级命令和“plumbing”低级命令,其中许多有子选项。尽管它已经成熟,但在性能、安全性和开发人员工作流程等领域还有很多工作要做。

文件系统监视器的目的是提高 git status 等命令的性能,这可能需要扫描整个工作目录。它在 Windows 和 macOS 上的 Git 中可用,并通过配置设置启用。复杂之处在于,Git 还支持使用外部文件系统监视器,通常是 Watchman,创新之处在于,以前实验性的内置文件系统监视器现在稳定,导致一些令人困惑的消息。

当使用多个版本的 git 时,像这样的新功能也会出现问题,这在 IDE 安装自己的版本时很常见。该文档尚未将 Linux 作为内置文件系统监视器的支持平台包括在内。

​​https://git-scm.com/docs/git-config#Documentation/git-config.txt-corefsmonitor​​

部分和稀疏克隆是另一个关键特性,在使用大型存储库时非常有意义。去年看到了稀疏索引的引入:

​​https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/​​

这可以在性能上产生巨大的差异,但需要注意的是并非所有 Git 命令都理解稀疏索引。那些未集成的会触发兼容性检查,在第一次读取索引时将稀疏索引转换为完整索引。

2.37 版扩展了对核心 Git 项目中所有命令的支持,现在包括 git show、git sparse-checkout 和 git stash,其中最后一个提供了“在某些情况下将近 80% 的加速”。

另一个名为 cruft packs 的新功能允许将无法访问的对象存储在单个文件中,并附有文件时间表,Git 团队称这避免了​​.git/objects​​ 的碎片可能导致存储库性能下降甚至降低整个系统的性能。

​​https://git-scm.com/docs/cruft-packs​​

在诸如 ​​<protocol>://<user>:<password>@<domain>/<path>​​ 这样的 URL 中包含 git 凭据是一种安全风险,尤其是当该 URL 可能传递给其他 git 程序时。可以将新的 transfer.credentialsInUrl 设置设置为“warn”或“die”,以防止无意中使用此机制。

2.37 的发行说明在这里:

​​https://github.com/git/git/blob/v2.37.0/Documentation/RelNotes/2.37.0.txt,​​

高级软件工程师 Taylor Blau 的 GitHub 博客描述了这些变化:

​​https://github.blog/2022-06-27-highlights-from-git-2-37/​​

举报

相关推荐

0 条评论