首页    新闻    小组    交易    人才    下载    博客    代码贴    在线编程    论坛
Git 2.24 发布,分布式版本控制系统
2019-11-08 17:47:12 | 阅读 62 次 | 评论(0)

Git 2.24 已经发布,该版本包含了来自 78 个贡献者的功能增加和 bug 修复。其中带来一些亮点,比如特性宏,commit-graph,新可选全新的仓库历史重写工具 filter-repo 等,内容如下:

Feature macros

在 Git 2.24 中,可以选择使用 feature 宏功能(一种包含许多其他功能的 Git 配置)。这些是由 Git 的开发人员手动选择的,通过它可以选择加入某个功能或根据存储库的特性采用一些设置。例如,假设有一个特别大的存储库,当我们发现其运行缓慢时,通常会将 index.version 设置为 4,但这并不是好的解决方法。而现在有另外一种选择:通过下面方式启用 feature.manyFiles:


git config feature.manyFiles true

目前 feature 宏功能只包括 feature.experimenta l和 feature.manyFiles,以后可能会新添加新的宏。

Commit graphs by default(默认启用提交图)

在 Git 2.24 中,默认会启用提交图,此前该功能是在实验性 core.commitGraph 配置启用,但经过大量测试,已经可以默认启用。除了之外,还有一些提交图其他的改进:

  • 所有 commit-graph 子命令(例如 git commit-graph write,git commit-graph verify 等)都支持 -[no-] progress。
  • 引入了一个新的配置值,用于在获取时自动更新 commit-graph 文件,该配置值利用提交图链将部分历史记录写入提交图链中,以供以后压缩。
  • 修复了许多错误,以改善 commit-graph 命令的性能和可靠性,尤其是在面对损坏的存储库时。
  • commit-graph 命令现在还支持Git的最新跟踪机制 trace2

Alternative history rewriting tools

如果想对存储库的历史记录执行复杂的操作(例如从存储库的历史记录中删除文件或提取与一个目录有关的历史记录),可以试用 git filter-branch。 git filter-branch 是一个历史悠久的且功能强大的重写历史记录的工具。

但是,git filter-branch 使用非常复杂,而且操作特别慢,并且经常会导致很多意想不到的误操作导致仓库库损坏和数据丢失。

Git 2.24 中推荐 git filter-repo(github/newren/git-filter-repo)。git filter-repo 可以避免用户在使用 git filter-branch 遇到的很多坑。git filter-repo 无需按顺序重新处理每个提交,而是对历史记录进行高效的流表示,可以更高效地运作。该工具功能极其强大,其所有功能都具有详细的文档。下面是有关如何使用 git filter-repo 的一些特点:

  • git filter-repo --analyze 提供了易于理解的度量选择,用于分析存储库的大小。这包括每种对象有多少个,文件和目录最大,扩展名占用最多空间等等
  • 可以使用 --path-{glob,regex} 和类似的选项来过滤存储库的历史记录,使其仅包含某些路径
  • 重写历史记录时,所有重写的提交(连同其祖先)将获得一个新的 SHA-1 来识别它们。默认情况下,git filter-repo 会更新对这些 SHA-1 的所有其他引用,就像其他引用它们的提交消息一样
  • 可以对历史记录执行"查找和替换"操作
  • git filter-repo 是可扩展的,它提供了一个灵活的接口,用于在 Python 中指定回调以及定义新的子命令

 更多详情请见发布说明

参考:

http://baijiahao.baidu.com/s?id=1649358058435736187&wfr=spider&for=pc




评论 (0)

游客请输入验证码
最新评论