如果你是使用git作为版本控制工具,那么github基本上是必备的网站,github可以托管你的git版本库,作用 类似于SourceForge和Google Code,github的界面是非常人性化的,由于git本身会比svn来的复杂,所以在操作上github会比SourceForge来的难点。
GitHub.Com是什么?
GitHub可以托管各种Git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。GitHub主要用Rails实现。
Git是什么?
The stupid content tracker,傻瓜内容跟踪器。Linux 是这样给我们介绍Git的。Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS, Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。作为开源自由原教旨主义项目,Git没有对版本库的浏览和修改做任何的权限限制。它只适用于 Linux / Unix 平台,没有Windows版本,目前也没有这样的开发计划。
GitHub支持SVN?
GitHub支持SVN版本控制,只不过是只读的,不能提交。
如何用SVN检出GitHub上的项目?
kissy项目:svn checkout http://svn.github.com/kissyteam/kissy.git
tinymce项目:svn checkout http://svn.github.com/tinymce/tinymce.git
1.在github上创建一个新的版本库
github首页,点击“create a new repo”按钮:
这样一个新的版本库就创建完毕了。
接下来我们需要本地版本库和远程版本库(github上的)进行通信,还需要一些配置。
2.ssh配置
想要让本地版本库与远程版本库通信,需要配置下SSH key。
2.1检查计算机上是否已经有SSH key
- $ cd ~/.ssh
如果出现““No such file or directory”或类似的语句,说明缺少ssh的key。
2.2创建个新的SSH key
- $ ssh-keygen -t rsa -C "your_email@youremail.com"
比如明河机子上的
- $ ssh-keygen -t rsa -C "minghe36@126.com"
会出现类似下图的提示:
直接按下“enter”键即可,然后输入密码。
一切顺利的话,你可以gedit .ssh/id_rsa.pub文件,复制里面的key码。
2.3增加ssh key到github上
第二个按钮
点击SSH keys
留意并不需要填写title,github会自动生成,直接把复制的key黏贴到key输入框确定即可。
2.4配置下git的用户名和email
- $ git config --global user.name "XXX"
- $ git config --global user.email "XXX"
配置结束。
3 新建一个项目并进行配置
3.1创建本地新项目工作树
$ mkdir new-project
$ cd new-project
$ git init
$ git add README
$ git commit -m 'first commit'
定义远程服务器别名origin
$ git remote add origin git@github.com:xxx/new-project.git
本地和远程合并,本地默认分支为master
$ git push origin master
GitHub网站上就可以看见了, http://github.com/xxx/new-project
3.2 更新文件
$ vi README
自动commit更改文件
$ git commit -a
更新至远程
$ git push origin master
3.3创建和合并分支
$ git branch 显示当前分支是master
$ git branch new-feature 创建分支
$ git checkout new-feature 切换到新分支
$ vi page_cache.inc.php
$ git add page_cache.inc.php
Commit 到本地GIT
$ git commit -a -m "added initial version of page cache"
合并到远程服务器
$ git push origin new-feature
如果new-feature分支成熟了,觉得有必要合并进master
$ git checkout master
$ git merge new-feature
$ git branch
$ git push
则master中也合并了new-feature 的代码
再登录到GitHub可以看见"Switch Branches"下的分支选项:
GitHub还有一个很实用的功能,查看开发进程网络图(Network):