BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Git 2.6 发布,带来众多新特性与改进

| 作者 Sergio De Simone 关注 18 他的粉丝 ,译者 适兕 关注 0 他的粉丝 发布于 2015年10月14日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

git近期发布了其最新的2.6版本,增加了许多新的特性,对许多内部结构和性能方面进行了改进,以及修复了大量的Bug。

新的工作流与UI特性

Git2.6引入了新的特性,即命令git fsck,此命令可在项目的历史记录中解决一些小的错误。git fsck用于验证仓库的完整性。经常遇到的情况时,当git fsck会对过去的提交过于吹毛求疵时,标记为不当的形式,以及不值当的历史记录修改等,例如,当很多用户已经克隆了仓库时。在此情况下,Git 2.6 允许开发者通过指定git fsck来调整严重性,例如,命令git config fsck.badEmail ignore会忽略不合法的电子邮箱地址。

git fsck也可以用于自动地检查对象的完整性,这些对象是指已经push到仓库的对象,从而防止旧的对象进入到项目的历史。在此情况下,这对告诉git fsck简单的忽略处于不好状态的提交蛮有用处,同时还能保持对新push的对象作全面的检查。这可以通过git config: git config fsck.skiplist "$PWD/.git/skiplist"所提供的可忽略的提交列表来完成 。

当执行一次rebase期间,命令git status能够显示更加详细的内容,它会提供关于在rebase日志中最后步骤和接下来的步骤的细节。这在大批量的提交后,再rebase时可以很好的跟踪一些记录。

以下是其它一些较有用的新特性:

  • git log --date 允许开发者使用自定义的日期格式:git config log.date "format:%c"
  • git log --cc 现在实现了-p的功能,所以它实际上显示合并提交的不同;
  • git fast-import 支持一个新的get-mark属性,使得SHA-1所对应的文件描述符被标记为可打印;
  • git log 支持一个新的配置项:--follow,继续列出经过重命名的文件的历史;
  • git pull --rebase 现在会考虑用户的rebase.autostash配置,此配置项默认会启用--autostash属性,从而让用户可以rebase一个脏的worktree。

性能与内部实现改进

在前端交互方面,用C重写了一些命令,例如git pullgit am。另外,对commitstatus在multi-tree合并后进行了加速。还有,对Git的一些内部实现作了一些变更,为的是准备好让不同的ref后端能够插入到Git。

根据Git邮件列表的通告 ,Git2.6包含了从Git2.5以来479次未合并的提交。关于新特性的完整列表,以及所修复的Bug,请阅读其发行注记

查看英文原文:Git 2.6 Brings Many New Features and Improvements


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT