更多腾讯海量技术文章,请关注云加社区: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
领取专属 10元无门槛券
私享最新 技术干货