解决 GitHub 和 Bitbucket 速度慢的问题

使用 GitHub 或者 Bitbucket 管理 git 代码时,有时候会遇到 git clone 或者 git push 特别慢的问题,并不是因为 github.com 的这个域名被限制了。而是 github.global.ssl.fastly.net 这个域名被限制了。
所以只要把 github.global.ssl.fastly.net 这个域名添加到 proxy 的路由表里面即可(设置方法你懂的)。

git rebase -i

使用 Git 好几年了,还一直没有考虑过类似 commit 以后还要修改它的问题,最近遇到了,发现是有现成方案的。

最简单的方法是 git submit –amend ,Git 目录中敲入这个命令的结果是可以直接修改当前最后一条未 push 的 commit 的注释信息,:wq 保存退出即可生效。如果有其他的需求,可以在缓存区(也就是没有commit的情况下)add 一些文件,再执行 git submit –amend ,可以将后续修改合并到之前的 commit 中。

这是一个比较简单的方法,但是还不足以处理很多复杂的情况,比如当你想要合并多个 commit 或者追溯到前面几个 commit 的时候,就需要用到 git 变基了(似乎混进了一些奇怪的东西)。使用以下语句即可:

比如想修改 master 下最近3个commit中的一个或者几个,可以输入:

然后你就会看到类似这样的东西(先盗一张别人的图吧):

其中,pick 就是默认操作,把 pick 改为 e,就可以对这个 commit 的注释信息进行修改,把多个 pick 改为 s,就可以合并这几个 commit。
修改完毕后,:wq 退出,输入命令 git rebase –continue,修改完毕。

参考资料:
https://www.atlassian.com/git/tutorial/rewriting-git-history#!rebase-i
http://git-scm.com/docs/git-rebase
https://help.github.com/articles/about-git-rebase
https://www.kernel.org/pub/software/scm/git/docs/git-rebase.html

Mavericks 中使用 SourceTree

之前说了 Windows 上 Git 的使用以及 SourceTree 的使用,现在说一下 MAC,以当前最新的 Mavericks 为例吧:

1. 似乎全新安装的 Mavericks 系统里面并不自带 git,所以需要自己下载,当我们在终端中输入“git”后,会提示需要安装 xcode,免费的,点确定后上 app store 下载即可(不过 xcode 的体积有够大的,再配上app store的龟速,妥妥的坑爹);
2. xcode 装好了以后在终端里面就可以使用 git 了(果然是够傻瓜的安装);
3. 接着上 SourceTree 官网下载应用:http://www.sourcetreeapp.com/download/,安装什么的就不用多说了吧;
4. 添加了 repository 后,需要在项目目录下执行如下操作,把权限改为自己的:

Have fun!

SourceTree – 好用的可视化源码管理工具

之前在 windows 上操作 git 一直都是使用命令行或者 TortoiseGit,由于最近一直在琢磨着把工作平台换为 MAC,所以考察了一下相应的工具,于是发现了 SourceTree

SourceTree 是一款由 Atlassian 推出的用于管理源代码的工具,可以安装在 Windows 和 Mac 上,用以管理你托管在 Github、BitBucket 或其他自建 Git 服务器上的源码。使用非常方便,如果是从 TortoiseGit 迁移过来的用户,上手只需数分钟,大致界面见图:

有了这个工具以后再也不用一个个手把手教团队中新来的非程序员如何使用生涩的命令行代码了。并且对整个项目的分支和走向也会有一个直观的认识。

使用 GAE Git Push 到 Bitbucket

使用 Bitbucket 主要是因为他提供了免费的 Private Git 空间,于是乎私人项目都会丢到这个上面。不幸的是,本着与先进生产力作对的一贯精神,Bitbucket 被 List 了。

可是 Private Respo 不得不用,于是使用了 GAE(敏感词就不多说了)科学上网,Git 中将服务器地址设置为 http://127.0.0.1 而不是 127.0.0.1(多了个http://),URL 替换 git@ 形式的地址为 https 形式的地址后,就可以用 GAE 进行 Git Push 到 Bitbucket 上面了。唯一的不爽是不能通过使用 Key 来免密码了,每次 Push 都要输入帐号密码,但是总比 Push 不上去,强多了。

本来故事应该到此为止,不过后来又遇到了诡异的事情,当 Push 一些大文件的时候,出现了 Git: error: RPC failed; 的错误,Google 了一圈,得出的结论是,你要改成 git@ 形式的地址,这不是坑爹么,用了这地址咋科学上网呢?最后还是 stackoverflow 大神网站比较牛,找到了答案,只需要在命令行或者 Bash 中执行以下命令即可:

原来是 git buffer 给的内存不足造成的,加大就可以了。