说说我使用github的经历
04
Jun
Posted by: snow in: rails
最近获得了好多的关注,作为tech“潮人”咱自然不能落后,看了几天,学习了不少有用的知识, 简单的谈谈使用git的过程.注册github.com帐户之类的废话就不用说了.这里我以自己下载、学习 rails-openid-kit 为例, 总结一下我使用github,并且为开源软件贡献一点力量的过程(顺便提一句,如果你希望为你的网站添加openid支持,那么openid-rails-kit是一个很好的选择)
- 在github上边找到openid-rails-kit,然后 “fork”

- 这个时候网站会跳转到你自己的页面,然后在你自己的帐户中copy一份openid-rails-kit项目的源代码,所以“fork”说白了就是,copy一份项目的代码,你对这份代码拥有一切权利,当然,这份fork过来的代码也会保留一切之前的log/change history .这时候你会看到 public clone url , your clone url的字样,很明显,一个是给所有人的只有读权利的地址,一个是你自己用的可以提交更改的地址。当地点击 Your clone url时候一行命令会蹦出来,copy之。


- 这时回到我本地,打开iterm, paste

- 当然了再下一步就是打开textmate,一通改。这时候你也许在纳闷,我的这个版本和原作者的版本有什么区别,我改了会不会对原作者的版本产生任何的影响呢,如果我提交了我的更改那么别人是否能够看到我都改了什么呢?呵呵,会有影响也可能没有影响,不过如果你提交了你的更改,在git里边通过git push来提交,那么所有关注这个项目的人都可以看到你的更改,过一会我们会具体演示别人怎么看到你的更改,你怎么看到别人的更改。当然了如果你使用textmate,那么git tmbundle 以及 github tmbundle 都是使用git必备的。
- 在git当中branch的概念无处不在,同时branch的创建, switch, delete都是非常的cheap。 我们刚刚通过git clone 生成的project 其实就是一个叫”master”的branch,我们用”master”来引用这个存储在本地的branch. 这个branch对应着你在github上的master branch,不过对于那个remote master branch,我们习惯用 origin/master来表示,origin可以认为是我们给remote repository起的一个别名. 同时当我运行 git branch new-features 的时候,git 又以我现在所在branch(master)为基础,创建了一个新的名叫new-features的branch, 通过git checkout new-features, 我们很轻松的就由master转到了new-features这个branch. 接下来就是可以放心大胆的添加我们的新功能,而不用担心破坏了master的功能。

- ok, 现在我们添加了新的功能,同时所有的新功能通过了测试,现在我们准备将新功能merge到master当中了。首先确认你已经提交了所有对于new-features branch的更改: (new-features branch) git commit -a -m ‘commit all my changes’; 返回到master branch当中:git checkout master . 然后 git merge new-features . 这个时候 就可以将 master push到remote: git push 当然所有的这些命令行都可以轻松的在textmate中使用git tmbundle来完成

- ok, 最后回到我的github帐户,可以直观的看到我所做的更改。如果我想告诉这个项目的原作者,和所有关注这个项目的人:“我改了写东西,你们应该看看。”那么我就可以点击我帐户中这个项目旁边的 “pull request”, 注意,是我的帐户中的这个项目,因为我想让人家看我的更改。当然如果人家觉得我的更改有意义,就会merge 我的branch…

ok,这篇文章已经足够长了,至于别人如何merge我的更改,我如何merge别人的更改,咱们下次再说。8-)
2 Responses
IceskYsl
05|Jun|2008 1我在GitHub上怎么没找到上传头像的地方,我还以为只有商业用户才有权限,free用户没有这个权限?

snow
05|Jun|2008 2github目前只支持Gavatar。你的邮件地址如果关联了gavatar就能显示。暂不支持头像上传
Leave a reply