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

更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer

作者:宋秉金

最近,开源项目 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.c和 program.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

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180108A0G54100?refer=cp_1026

扫码关注云+社区