抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

Git 在版本 2.13 中继续改进了安全性和 UI

2017 年 5 月 22 日

Git 的最新版本做了很多改进,旨在改进其用户界面,同时也修复了两个重要的漏洞。

众所周知,Git 用于唯一识别对象的SHA-1 哈希算法最近被证明容易受到碰撞攻击。虽然Git 团队准备过渡到一个新的更安全的散列算法,但它们已经实现了一种算法,这种算法可以检测和拒绝任何创建时带有制造冲突目的的对象。这应该会有效地减轻被攻击的风险。

在安全性方面,Git 2.13 版本还修复了一个漏洞,这个漏洞会影响到所有使用git shell 的Git 托管服务器,它使攻击者可以在远程服务器上静默运行shell 命令。而该版本提供了一种更严格的方式,通过SSH 来使用Git 的push/pull 命令和安装在git-shell-commands 目录中的自定义命令。

同时,Git 2.13 版本在 UI 方面也做了很多改进。尤其对于为不同项目工作的所有开发人员来说,最有用的功能是通过条件配置来处理多个身份的能力。简而言之,条件配置提供了一种基于一组条件来包含 Git 配置文件的方法。例如,您可以在〜/ .gitconfig 文件中使用以下指令,以根据存储库所在目录的路径自定义 Git 配置:

复制代码
[includeIf "gitdir:~/work/"]
path = .gitconfig-work
[includeIf "gitdir:~/play/"]
path = .gitconfig-play

具体来说,这可以用来在.gitconfig-work 和.gitconfig-play 中定义不同的用户和电子邮件。

在 Git 2.13 版本中,几乎所有开发人员都会使用到的功能是在 Git 命令中使用路径规则,即 pathspecs 。 例如,如果要在存储库中对给定类型的所有文件执行 grep,可以写:

复制代码
git grep my_pattern '*.c'

现在,您还可以使用否定 pathspecs(从命令中排除特定的 pathspec)以及使用属性的 pathspec(在 pathspec 定义中包括这些属性)。 例如:

复制代码
git grep text_to_search -- src ':(exclude)*.c'

其他显著地改进包括:

  • git branch、git tag 和 git for-each-ref 现在支持的–no-contains 选项,可用于选择不包含指定提交的标签或分支,例如:

    git tag -l --no-contains cf5c725 ‘v[0-9]*’ | sort | tail -n 10

    已有–contains 选项时–no-contains 选项会被忽略,例如查找在两个标签之间创建的分支:

    git branch --contains v2.8.0 --no-contains v2.10.0

  • git stash 支持使用 pathspecs 来暂存当前正在进行的工作,从而允许更多地控制要被暂存的内容。

  • 子模块现在有自己独立的命令,包括 checkout、grep 和 ls-files。 这意味着子模块支持递归遍历。 另外,git status --short 可以查询出有关子模块的更多状态信息。

您可以阅读完整的发版说明,详细了解Git 2.13 版本中的新功能。

查看英文原文: Git Continues to Improve Security and UI in Version 2.13


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017 年 5 月 22 日 19:001299

评论

发布
暂无评论
发现更多内容

一杯茶的时间,上手 React 框架开发

图雀社区

Reac

游戏夜读 | 关卡设计为什么难?

game1night

需求是被挖掘还是被创造出来的?

Neco.W

产品 互联网 需求

算法工程师的发展路径

Lucien

爱是恒久忍耐,又有恩慈

霍太稳@极客邦科技

身心健康 心理

高仿瑞幸小程序 08 创建第一个云函数

曾伟@喵先森

小程序 微信小程序 前端 移动

编写制度的几点实用建议

石君

制度 编写制度 安全管理

油管博主路透 3080Ti 参数、黄教主烤箱中拿出 DGX A100 预热发布会

神经星星

人工智能 互联网巨头 gpu 互联网 英伟达

Dubbo集成Sentinel实现限流

Java收录阁

sentinel

高效阅读,成就自我-《麦肯锡精英高效阅读法》读后感

顾强

读书笔记 读书 读书方式

回“疫”录(15):在家SOHO,是你想要的工作方式吗?

小天同学

疫情 回忆录 现实纪录 纪实 远程办公

面向页面的移动端架构设计

稻子

flutter ios android 前端架构 架构模式

终于有一款组件可以全面超越Apache POI

Geek_Willie

前后端分离 服务端 GrapeCity Documents

《硅谷革命:成就苹果公司的疯狂往事》读后感

顾强

从波音747学项目管理

顾强

项目管理 读书感悟 沟通

有了容器为什么kubernetes还需要Pod?

架构师修行之路

Kubernetes 分布式 云原生 pod

初探Electron,从入门到实践

Geek_Willie

前端 Electron SpreadJS

Spring 中不同依赖注入方式的对比与剖析

Deecyn

spring

前浪的经验:区块链软件,一定也要去中心化

WasmEdge

比特币 区块链 智能合约 以太坊 加密货币

Flink Weekly | 每周社区动态更新

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

借助第一性原理开启中台建设

数字圣杯

数据中台 数字化转型

编程的门槛 - 抄作业的得与失

顿晓

编程门槛 编程思维 动手能力 抄作业

21天养不成习惯,28天也不行。不要痴心妄想。

赵新龙

TGO鲲鹏会 习惯养成

业务信息化操作系统(BIOS)——中台的核心产出物

孤岛旭日

中台 操作系统 企业信息化

反对996,但是选择996是一个怎样的矛盾心态?

顾强

职场 加班

猿灯塔-Phaser 使用介绍

猿灯塔

故障的传播方式与隔离办法

Wales Kuo

基于XGB单机训练VS基于SPARK并行预测(XGBoost4j-spark无痛人流解决方案)

黄崇远@数据虫巢

学习 算法

认识数据产品经理(三 成为数据产品经理)

马踏飞机747

大数据 数据中台 数据分析 产品经理

“字节”不断“跳动”,卡拉永远 OK?

无量靠谱

字节跳动 诺基亚 危机

你竞争我得利之零售变革

孙苏勇

行业资讯

Study Go: From Zero to Hero

Study Go: From Zero to Hero

Git在版本2.13中继续改进了安全性和UI-InfoQ