diff --git a/whats-new-git-2-1/README.md b/whats-new-git-2-1/README.md new file mode 100644 index 0000000..7da5fa1 --- /dev/null +++ b/whats-new-git-2-1/README.md @@ -0,0 +1,57 @@ +原文链接: [What’s new in Git 2.1](http://blogs.atlassian.com/2014/08/whats-new-git-2-1/) + +`Git` `2.1`新特性 +====================== + +`git` `2.0.0`发布2个半月后,`2.1.0`作为小版本更新,带来了一大波令人兴奋的新特性。 + +完整的发布说明文档可以在这里[查看](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.1.0.txt), +如果你对`git`社区接触不多,会觉得发布说明文档说明有些太简明了。 +这篇文章是我对这次发布中觉得令人兴奋的方面所做的评注。 + +更好的分页程序缺省设置 +------------------ + +本文引文都是直接提取自发布说明文档,会在其中加上自己的评注。 + +> 自从很早期的`Git`开始,当调用`less`分页程序时,`LESS`环境变量缺省值成`FRSX`。 +`S`选项(截断长文本行而不是折行)从缺省值中删除了,因为对不同的人有不同的说法,这个选项或多或少是个人口味问题。 +(比如,`R`选项就合理得多,因为很多不同的输出都是彩色的,而`FX`也是合理的,因为输出常常短于一页。) + +如果你没有覆盖过`git`分页程序的缺省值,这个变化意味着`git`命令的分页输出会在终端宽度的地方折行而不是截断行。 +下面是`git` `2.1.0`(折行)和`git` `2.0.3`(截断)在右侧的显示的例子: + +![](git210leftvsgit200right-600x293.png) + +这个只会影响你日志的输出,如果你用的是一个窄的终端,或者在提交消息中有长行。 +一般`git`推荐提交日志信息[不要超过72字符宽度](http://stackoverflow.com/questions/2290016/git-commit-messages-50-72-formatting), +但如果觉得折行还烦,可以通过恢复原来的行为来关闭: + +```bash +$ git config core.pager "less -S" +``` + +当然,分页程序也会用于其它的输出,比如`git blame`,这种情况下由于作者名长度和代风格,可以能会有很长的行。 +2.1.0的发布说明文档也指出了可以只在`blame`的分页程序中启用`-S`选项: + +```bash +$ git config pager.blame "less -S" +``` + +如果你对`git`还在使用的缺省`less`选项很好奇,说明如下: + +- `-F`:让`less`进程退出,如果输出少于一页。 +- `-R`:保证只有`ANSI`颜色转义序列按原始形式输出,这样`git`控制台颜色才能生效。 +- `-X`:避免屏幕在`less`启动时被清空。这个也是在`less`输出少于一页时才是有用的。 + +更好的`Bash`补全 +------------------ + +> 更新了`Bash`的补全脚本(在`contrib/`),对于定义了复杂命令序列的别名能更好的处理。 + +这个**超酷**!我是一个自定义`git`别名的大粉丝。能够在复杂的别名上用上`git`的`Bash`自动补全, +让这些别名在命令行上使用起来更强大和方便。举个例子,我定义一个可以从日志中`grep`出`JIRA`风格的`issue`主键(如`STASH-123`)的别名: + +```bash +issues = !sh -c 'git log --oneline $@ | egrep -o [A-Z]+-[0-9]+ | sort | uniq' - +``` diff --git a/whats-new-git-2-1/git210leftvsgit200right-600x293.png b/whats-new-git-2-1/git210leftvsgit200right-600x293.png new file mode 100644 index 0000000..0c1c868 Binary files /dev/null and b/whats-new-git-2-1/git210leftvsgit200right-600x293.png differ