半年还没有过去:版本控制系统Git 2.29已发布



嗨,%用户名%,今天,一个好消息:在公共领域出现了发布分布式控制系统2.29.0版本的Git。在Habré上可能不值得说出它是什么,因为Git仍然是最好的系统之一。



新版本一次包含627个更改,这些更改由89个开发人员进行。我们将告诉您削减计划下的主要变更和改进。



  • SHA-256 SHA-1 . Git . . , SHA-1 , Git . SHA3-256, SHA2-256, SHA2 Git . , , . , , - — .


  • 现在,Git增加了在创建存储库时包括新对象格式的功能:


$ git init --object-format=sha256 repo
   Initialized empty Git repository in /home/ttaylorr/repo/.git/
 
   $ cd repo
   $ echo 'Hello, SHA-256!' >README.md
   $ git add README.md
   $ git commit -m "README.md: initial commit"
   [master (root-commit) 6e92961] README.md: initial commit
    1 file changed, 1 insertion(+)
    create mode 100644 README.md
 
   $ git rev-parse HEAD
   6e929619da9d82c78dd854dfe237c61cbad9e95148c1849b1f96ada5ee800810


您只能在SHA-1和SHA-256之间选择,不可能在一个存储库中组合不同的哈希。



  • git fetch和git push命令现在支持排除性链接规范,该规范扩展了匹配本地和外部存储库中分支之间的链接的规则。在不仅需要选择而且还需要从映射中排除某些分支的情况下,此功能很有用。因此,当您需要检出除一个“ refs / heads / ref-to-exclude”之外的所有“ refs / heads / *”分支时,必须使用此脚本指定完整列表:


   $ git ls-remote origin 'refs/heads/*' |
     grep -v ref-to-exclude |
     awk '{ print $2:$2 }' |
     xargs git fetch origin


  • 现在有一个异常运算符“ ^”。使用此运算符的表达式可以接受模板,但不能引用对象标识符。使用new运算符的命令可能如下所示:


   $ git fetch origin 'refs/heads/*:refs/heads/*' ^refs/heads/ref-to-exclude


此外,您可以在设置中使用排除项:



   $ git config --add remote.origin.fetch ^refs/heads/foo


  • 现在,“ git shortlog”具有按附加字段“ Reviewed-by:”和“ Coauthored-by:”(而不是仅按作者或提交者)的内容对提交进行分组的功能。因此,如果您需要显示审查最活跃的开发人员的列表,则需要一个命令:


 $ git shortlog -ns --group=trailer:reviewed-by v2.28.0.. | head -n5
    40  Eric Sunshine
    10  Taylor Blau
     4  brian m. carlson
     2  Elijah Newren
     1  Jeff King


  • 可以在启动时指定多个--group语句,并使用--format选项。因此,为了跟踪共同作者或贡献者,您现在需要指定以下内容:


   $ git shortlog -ns --group=author --group=trailer:co-authored-by
   $ git shortlog --format="...helped %an on %as" --group=trailer:helped-by v2.28.0..v2.29.0


  • 如果在git merge操作期间发生冲突,现在将提交消息的标题放在方括号中,以明确地将数据与来自Git诊断消息的提交分开。
  • 开发人员带回了Git通信协议的第二版本,该协议在2.27版本中被禁用。因此,已修复了导致稳定性问题的错误。
  • “ --first-parent”选项已添加到git bisect命令中,该命令用于检测修订,以在已知的工作修订和发生问题的修订之间更改提交的选择。


您可以在此处查看所有创新






All Articles