文 | 宋秉金
最近,开源项目 Git 正式发布了 Git 2.13.0 版本,包括了来自 65 位贡献者开发的特性和 Bug 修复。其中特别值得一提的一处 Bug 修复与 git shell
命令有关。2.13 版本之前,对于自己部署 Git 服务器的用户来说,可能会存在不受信任的 Git 用户在远程主机上执行 shell 命令的风险。
下面我们来介绍一下几个新增特性:
前段时间有新闻报道说,研究人员找到了第一例 SHA-1 冲突,而 SHA-1 正是 Git 用来识别对象的哈希函数。Git 2.13 版本会对对象进行检测,并拒绝可能存在冲突攻击的对象。新版本中,该检测已默认生效,用户不用再安装其他依赖。不过,这个实现的速度相对慢一些,但是实际上对于大多数 Git 操作的时间不会产生可见影响。
以前,你可能会这样使用 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
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。