发布分布式源码控制系统Git 2.25

可得到 发布分布式源代码控制系统 Git 2.25.0。 Git 是最流行、可靠和高性能的版本控制系统之一,提供基于分支和合并的灵活的非线性开发工具。 为了确保历史记录的完整性和对追溯更改的抵抗力,在每次提交中都会使用整个先前历史记录的隐式哈希;还可以使用开发人员的数字签名来验证各个标签和提交。

与之前版本相比,新版本包含 583 处变更,由 84 名开发人员参与准备,其中 32 名开发人员首次参与开发。 创新:

  • 部分克隆的可能性正在接近稳定和完全准备就绪,允许您仅传输部分数据并使用存储库的不完整副本。 典型的克隆复制存储库中的所有数据,包括更改历史记录中每个文件的每个版本。 对于非常大的存储库,复制数据会导致流量和磁盘空间显着增加,即使开发人员只对文件的子集感兴趣。 为了更轻松地仅检索部分工作源代码树,新版本引入了实验性的“sparse-checkout”命令和“clone”命令的新“--sparse”选项。

    以前,选择性克隆过程是通过任务执行的 过滤器 过滤掉不必要的内容,并使用“—no-checkout”选项来禁用填充丢失的文件。 之后,在执行签出操作之前,需要启用 core.sparseCheckout 设置并在 .git/info/sparse-checkout 文件中定义排除路径模式的列表。 例如,要在没有 blob 的情况下进行克隆并防止从深度为 2 或以上的子目录中提取文件,您可以运行:

    git clone --filter=blob:none --no-checkout /your/repository/here 仓库
    $ cd 回购
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout .

    新的“git稀疏-checkout”命令极大地简化了工作,并将不完整存储库的组织工作过程减少为以下命令:

    git clone --filter=blob:none --sparse /your/repository/here 仓库
    git稀疏结帐集/路径/到/检查/出

    稀疏-checkout命令允许您设置用于签出(set)的路径列表,而无需手动配置.git/info/sparse-checkout,以及显示当前路径列表(list)并启用或禁用部分签出(enable /禁用)。

    为了优化非常大的存储库和模板列表的工作,“git config core.sparseCheckoutCone”,它限制允许的模式(您可以指定是否应检出给定子目录中的所有路径和所有文件,而不是任意 .gitignore 模式)。 例如,如果一个大型存储库有一个目录“A/B/C”,并且所有工作都集中在子目录“C”中,那么当您启用sparseCheckoutCone模式时,命令“git稀疏-checkout set A/B/” C”将提取“C”的全部内容,但从“A”和“B”中,它将仅提取与“C”一起使用所需的部分。

  • 从文档(“git rebase -h”)中,所有对“--preserve-merges”选项的引用已被删除,该选项已被弃用,应该用来迁移一组提交。git rebase --rebase-merges«。
  • 为了提高发送到邮件列表的带有补丁的消息的可读性,添加了“git format-patch —cover-from-description subject”选项,指定后,分支描述文本中的第一段将用作主题的主题一组补丁的求职信。
  • 实现了对“git apply -3way”命令和“merge.conflictStyle”设置的组合使用的支持(当尝试后需要解决冲突时,“git apply”现在会考虑 merge.conflictStyle 中的冲突描述样式将补丁文件应用到存储库)。
  • “git diff/grep --show-function/-function-context”等操作中使用的函数定义代码已扩展为支持在语言程序中定义函数边界 .
  • “git add”、“git commit”、“git reset”和其他命令中添加了一个新选项 - “-pathspec-from-file”,这使得从文件或输入流加载路径列表成为可能,而不是在命令行上列出它们。
  • 写入提交时检测目录级别重命名的问题已得到解决。 如果子目录的内容移至存储库的根目录,则该定义不起作用。
  • 已经提出了重新设计的“git add -i”命令的初步实现,允许您以交互方式添加更改的内容,从 Perl 重写为 C。 “git add -p”命令的类似修改正在进行中。
  • “git log –graph”命令已被重构,生成包含存储库中更改历史记录的图表的 ASCII 图像。 返工使得可以在不扭曲故事结构的情况下显着改进和简化输出,例如解决了图片超出终端线宽度的问题。
  • “git log --format=..”选项允许您更改输出格式,
    扩展了对“l/L”标志的支持,以仅显示“@”符号之前指示的电子邮件地址部分(例如,当所有开发人员的所有电子邮件都位于同一域中时很有用)。

  • 在“git submodule”命令中添加了“set-url”子命令。
  • 测试套件已更新,为过渡做好准备
    哈希算法 SHA-2 而不是 SHA-1。

来源: opennet.ru

添加评论