mirror of
https://github.com/oldratlee/translations.git
synced 2026-04-13 09:39:46 +08:00
update whats-new-git-2-1
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
`git` `2.0.0`发布2个半月后,`2.1.0`作为小版本更新,带来了一大波令人兴奋的新特性。
|
||||
|
||||
完整的发布说明文档可以在这里[查看](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.1.0.txt),
|
||||
完整的发布说明文档可以在[这里](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.1.0.txt)查看,
|
||||
如果你对`git`社区接触不多,会觉得发布说明文档说明有些太简明了。
|
||||
这篇文章是我对这次发布中觉得令人兴奋的方面所做的评注。
|
||||
|
||||
@@ -190,7 +190,7 @@ stash-parent-3.0.0
|
||||
..
|
||||
```
|
||||
|
||||
不对啊!`2.10.0`是`2.3.0`之后发的,所以缺省的`tag`排序不对的。
|
||||
有问题啊!`2.10.0`是`2.3.0`之后发的,所以缺省的`tag`排序不对的。
|
||||
从`git` `2.0.0`开始,可以用`--sort`选项可以正确按数据版本排序:
|
||||
|
||||
```bash
|
||||
@@ -227,6 +227,43 @@ $ git config --global tag.sort version:refname
|
||||
|
||||
> 新加了`git verify-commit`命令用于检查有签名提交的`GPG`签名,使用方式和`git verify-tag`检查签名的`tag`类似。
|
||||
|
||||
如果你要用提交签名来认证提交的作者,`verify-commit`命令大大简化了核实签名操作。不再需要自己写个脚本去分析`git log --show-signature`,
|
||||
只要简单把要核实签名的那些提交传给`git verify-commit`。
|
||||
有可能你没有用签名提交(在`Atlassian`我们没有用),因为这们做需要有`Key`管理和开发额外麻烦的操作。
|
||||
对于多数项目,一般签名的`Tag`是在方便和安全之间一个更好的平衡。
|
||||
如果你想知道为什么有项目会使用签名提交,Mike Gerwitz讲了一个在假设场景下[`git`的恐怖故事](http://mikegerwitz.com/papers/git-horror-story),这个场景下签名提交是非常有用的。
|
||||
所以如果你在特别敏感的企业工作,可能要把它加入到工作流中。
|
||||
|
||||
更多的性能加速
|
||||
------------------
|
||||
|
||||
`git` `2.1.0`也带来了一个不错的性能提升。
|
||||
|
||||
> 引入了使用2个文件(一个基础文件和一个相应的增量文件)的试验性格式来表示索引;
|
||||
当要重写只有小部分工作树变化的大索引时,这样可能减少I/O消耗。
|
||||
|
||||
复述一下意思是:如果你的提交有大量文件修改时,运行`git add`可能会更快。
|
||||
我本地的任何增量操作,`git add`已经像闪电一样快了,所以我测看不出和测试的`git`版本之间有什么大的性能变化。
|
||||
有意思的是,第一次的`add`大量文件时好像快了一点。
|
||||
做了个快糙猛的性能测试,我试着暂存所有在`JIRA`代码库从`JIRA 5`到`JIRA 6`的修改。
|
||||
|
||||
```bash
|
||||
$ git checkout jira-v6.0
|
||||
$ git reset jira-v5.0
|
||||
$ time git add --all
|
||||
```
|
||||
|
||||
`git` `2.0.3`平均使用2.44秒。而`git` `2.1.0`平均使用2.18秒 ——
|
||||
节省超过10%的时间!注意,由于实验条件这是个很不准确的测试,添加14500+个文件到索引中节省了1/4秒,所以在日常`git`使用中不会看到大的变化。
|
||||
关于新索引格式可以在[索引格式文件](https://code.google.com/p/git-core/source/browse/Documentation/technical/index-format.txt)中可以了解更多。
|
||||
|
||||
> 缺省开启了`core.preloadindex`配置项,以充分利用现代平台的多核。
|
||||
|
||||
不错!之前我没有开启这个功能,但升级到`2.1.0`后性能变化很显著。
|
||||
再做一个快糙猛的测试,运行`git status`显示之前我用的从`JIRA 5`到`JIRA 6`的暂存修改。
|
||||
显示暂存的14500+个文件,`git` `2.0.3`平均使用4.94秒。而`git` `2.1.0`平均使用3.99秒 ——
|
||||
节省了多达~19%的时间。如果你使用了自定义的`shell`提示符,在每次提示符显示时检查工作拷贝中是否有未提交的修改,
|
||||
这个性能就非常有用!当索引很大时,觉得`bash`反应快了一些。
|
||||
|
||||
等等,还有还有!
|
||||
------------------
|
||||
|
||||
Reference in New Issue
Block a user