嗨,%用户名%,今天,一个好消息:在公共领域出现了发布分布式控制系统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命令中,该命令用于检测修订,以在已知的工作修订和发生问题的修订之间更改提交的选择。
您可以在此处查看所有创新。