Git 2.13 正式发布,可检测 SHA-1 冲突

文 | 宋秉金

最近,开源项目 Git 正式发布了 Git 2.13.0 版本,包括了来自 65 位贡献者开发的特性和 Bug 修复。其中特别值得一提的一处 Bug 修复与 git shell 命令有关。2.13 版本之前,对于自己部署 Git 服务器的用户来说,可能会存在不受信任的 Git 用户在远程主机上执行 shell 命令的风险。

下面我们来介绍一下几个新增特性:

SHA-1 冲突检测

前段时间有新闻报道说,研究人员找到了第一例 SHA-1 冲突,而 SHA-1 正是 Git 用来识别对象的哈希函数。Git 2.13 版本会对对象进行检测,并拒绝可能存在冲突攻击的对象。新版本中,该检测已默认生效,用户不用再安装其他依赖。不过,这个实现的速度相对慢一些,但是实际上对于大多数 Git 操作的时间不会产生可见影响。

更方便的 pathspec

以前,你可能会这样使用 Git:

$ git log foo.c
$ git grep my_pattern program.rb

其实,foo.cprogram.rb 这种参数实际上被称为 pathspec,是 Git 独有的匹配路径的模式。Pathspec 可以是路径字面量、前缀或者通配符:

$ git log Documentation/      # Everything under the Documentation/ directory
$ git log '*.c'               # C files anywhere in the tree

新版本中,添加了 attr 标记,支持根据文件的 git 属性值进行选择。例如,如果你使用了 GIt LFS,可以这样获取文件列表:

$ git ls-files
.gitattributes
README
video.mp4

$ git ls-files ':(attr:filter=lfs)'
video.mp4

更多新特性,请查看RelNotes/2.13.0.txt

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区