技术小黑屋

人生苦短,让你的Git飞起来吧

git是一款超极优秀的版本控制工具,包括Linus大神的linux项目在内的千千万万的项目在使用。你可以使用Eclipse插件管理,亦可以使用终端工具。

git虽然有着svn不能匹及的本地仓库,但是和svn一样,和远程服务器通信也相当常用。常用的pull和push就是比较常见的命令。

然后,你是不是觉得从远程拉取(pull)到本地是不是很慢,从本地推到服务器端(push)又是不是很耗时呢,是吧,正所谓人生苦短,赶紧加速你的git吧。

修改ssh配置

按照下面的内容修改这个文件vim ~/.ssh/config

1
2
3
4
ControlMaster auto
##ControlPath /tmp/%r@%h:%p
ControlPath /tmp/git@github.com:22
ControlPersist yes

一些注解

  • ControlMaster auto可以使多个ssh会话共享一个已经存在的连接,如果没有,则自动创建一个连接。
  • ControlPath /tmp/%r@%h:%p可以指定想要共享的连接。%r代表远程登录用户名,一般都为git,%h表示目标主机,%p表示端口。
  • ControlPersist yes 则可以让共享的连接持有处于连接状态。

常用的ControlPath

下面包含开源中国,github,gitcafe等代码托管。

1
2
3
ControlPath /tmp/git@git.oschina.net:22
ControlPath /tmp/git@github.com:22
ControlPath /tmp/git@gitcafe.com:22

快来试一试吧,是不是提高了5倍!

注:由于网络的情况,结果可能略有不同。已经很快的但没有感觉改善的同学,可以继续读下去。

还能更快

还有一个能提高50倍的方法,不过对于一般开发者不是很常用,如需了解可以参考Speed Up Git (5x to 50x)


知乎 Live 推荐

我将要在知乎上进行我的第二场 Live,题为《我学安卓的那些套路》,来分享我学习安卓的经验与心得。覆盖的内容如下:

  • Android 需要打好哪些编程基础?
  • 除了编程基础,我们还需要补充哪些能力?
  • 作为 Android 程序员,如何把握好技术的宽度和深度?
  • Android 每块知识学到什么程度,怎么做到?
  • 如何从日常的工作中获取最大的收益?
  • Android 那么多库,我该选择哪些,怎么学,学到什么程度?
  • 对于初学者或大学生的建议有哪些?

如果你想听一听我的经验或者有疑惑,欢迎参与。

参与地址:https://www.zhihu.com/lives/802899577341620224