github 上常用的两种工作模式
最近和army8735一起维护他的代码,由于最近代码管理github吵的很热,所以也正好把代码放到git hub上管理,顺便了解下github的工作模式,写这篇文章就是来总结用github来管理代码的一些方式。
文章开始前我觉得有必要稍微介绍下GIT.
Git --- The stupid content tracker, 傻瓜内容跟踪器。那么怎么理解呢?git首先是一个版本控制工具,这点和常用CVS, Subversion是一样的,而不同的是,他采用分布式版本控制库的方式管理。Git的速度非常快,可以很轻易创建分支,并且非常适合用于大项目,它有着非常出色的代码合并追踪能力,再同时它有很多小工具帮它管理版本库。在此本文不试图去深入讨论理解git的工作原理,只打算介绍一下git的相对优点,以及我们可以用git做什么。当今的jquery,淘宝的kissy,白度的Tangram都把自己的代码托管到github上,这里像一个开源基地,谁都可以给任何自己想要参与的项目贡献代码,这个归功于github上提供的两种协作模式(Collaborative Development Models):1、The Fork + Pull Model (分支推送模式)2、The Shared Repository Model(共享仓库模式)第一种模式在作为陌生人贡献代码上十分有用,后面会详细介绍。
第一步 环境
(如果你已经安装好了环境,并且在github上设置好了ssh密钥,你可以跳过这些内容)
目前git已经都具备了mac linux(不用说) win的安装包
在开始用git工作前,先得确保机器上已经有git的环境
win 下的git安装http://help.github.com/win-git-installation/
mac 下的git安装http://help.github.com/mac-git-installation/
linux 下的git安装http://help.github.com/linux-git-installation/
在安装好了git环境之后你需要做些简单的配置
打开 git 命令行,进到你要放置你代码的目录
输入 git init //git 初始化
git config --global user.name=xxxgit config --global user.email=xxx
$ cd ~/.ssh//这个emai替换成你自己的email$ ssh-keygen -t rsa -C "xxx@gmail.com"这个时候,应该能看到下面的结果$ lsconfig id_rsa id_rsa.pub known_hosts
//让git版本库追踪到build.xml这个文件$ git add build.xml//提交到本地版本库 引号里是注释$ git commit -m "add something"//这个时候已经提交到本地git版本库了,需要传到github需要推送下$ git push origin master
//选种当前 master 为当前分支$ git checkout master//让git追踪到远程的要合并的代码库$ git remote add xxx git://github.com/xxx/jquery.git//合并分支$ git fetch xxx$ git merge xxx/jquery.js//推送回给自己的代码库$ git push origin master
$ git checkout master//应用这个分支的改动$ curl http://github.com/github/jobs/pull/25.patch | git am$ git push origin master