Git 2.51 版本发布
Git 2.51 已正式发布,这是 Git 向 3.0 演进的关键里程碑。主要变化如下:
1. Cruft-free Multi-pack Indexes(无冗余的多包索引)
-
引入了
repack.MIDXMustContainCruft
配置,用于让多包索引(MIDX)只包含可达对象,从而剔除“cruft packs”中的不可达对象。 -
在 GitHub 的 monorepo 上测试结果显示:MIDX 大小缩小约 38%、生成速度提升约 35%、读取性能提升约 5%。
2. “Path walk” 重打包机制
- 新的
--path-walk
选项按路径分组对象进行重打包,避免使用传统的 name-hash heuristic,生成的包通常更精简,性能与现有方式相当或更优。
3. 更强大的 Stash 表示方式
- Stash 条目由一系列多个父节点的提交表示,现在支持通过
stash export
导出 stash,然后像分支或标签一样 push/pull 传输。
4. 改进 git cat-file
的表现
git cat-file --batch-check
在面对子模块时,不再显示 “missing”,而是正确识别为 “submodule”,提升脚本处理准确性。
5. 支持多个 pathspec 结合 Bloom 过滤器
- 使用多个路径参数(例如
git log -- path/a path/b
)时,也可以利用 changed-path Bloom 过滤器,从而提高历史查询效率。
6. git switch
与 git restore
正式稳定化
- 这两个命令不再是实验性功能,完善了原本
git checkout
的功能分裂,让界面更加清晰且可靠。
其他亮点
-
内部开发流程支持更多 C99 特性,如
bool
关键字的使用已获批准,并记录哪些特性是试验性使用的The GitHub Blog。 -
Git 对贡献者允许使用非法律姓名提交补丁,与 Linux Kernel 的模式更加一致The GitHub Blog。
-
引入 SHA‑256 支持并提供测试选项
-
reftable 将成为未来的新标准引用后端
-
多项其他改进提升用户体验和安全性
详情查看 https://github.blog/open-source/git/highlights-from-git-2-51/
为您推荐相关文章:
同类文章推荐: