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

简介:

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版本中的新功能。

本文转自d1net(转载)

相关文章
|
29天前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
29 1
记IDEA Git版本回退并push到远程操作
|
1月前
|
开发工具 git
【git 实用指南】git 修复错误提交,版本回退
【git 实用指南】git 修复错误提交,版本回退
28 1
|
3月前
|
存储 开发工具 git
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
68 0
|
4月前
|
测试技术 Linux 开发工具
Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用
Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用
38 0
|
4天前
|
存储 安全 Linux
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
|
3月前
|
开发工具 git
git各阶段版本回退命令
git各阶段版本回退命令
|
4天前
|
Shell Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
|
1月前
|
开发工具 git
IDEA通过git回滚到某个提交节点或某个版本的操作方法
IDEA通过git回滚到某个提交节点或某个版本的操作方法
21 0
|
3月前
|
开发工具 git
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
|
3月前
|
算法 安全 Linux
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)

相关实验场景

更多