git@osc可让咱们托管代码,进行版本控制,同svn等相似平台同样,能够帮助咱们实现团队协做开发,不管你是不是项目团队成员。本教程彻底适用GitHubhtml
协做开发:顾名思义,就是由多个项目成员共同开发一个项目。git
fork:GitHub提供很是方便功能,能够一键将其余人的项目复制到本身帐号下。github
pull request:非项目成员贡献代码一种方式。shell
由项目建立者进入指定项目,在菜单栏上点击“设置”,会看到以下界面安全
而后点击“添加成员”eclipse
在用户栏中,输入成员名称,这块我总以为有点诡异,下午同事刚刚注册了一个git帐号,而后我在此处尝试了各类办法怎么也搜索不到指定用户,大概过了能有2个小时后,有神奇般的能搜索到了,我怀疑git@osc后台作处理了?或者帐号注册后有生效时间?无论怎么样,在这块输入要找的用户名便可,好比:我要添加一位叫“杨小杨”的同窗,输入“杨小杨”是找不到的,但输入他的帐号邮箱“yangshuangjun”就能够找到,截止到目前,我仍是没有摸清这个搜索用户的路数。
svn
找到成员后,分配角色,一个是管理员、一个是开发者学习
这两个角色的区别详见这里:http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9fetch
ok后,点击添加用户便可spa
随后,这个项目成员经过egit客户端直接clone项目,修改并提交代码,实现协做开发。
什么状况下使用fork?
当你对某个公开的开源项目感兴趣,你能够经过fork功能方便地将该项目复制到你的帐号下,以便学习或者贡献代码。
首先找到你想要的项目,好比:
点击上图右上角的Fork按钮,确认后,该项目就会跑到你的名下了。意思是你对该项目作了一个分叉,至关于OO里边的继承。
此时,利用egit将该项目import至eclipse工程中,而后你能够修改代码,而后commit and push来更新,就像你本身的项目同样。
何时使用pull reques呢?
使用pull request前提条件是你fork他人代码,并进行了修改。当你修改代码并commit后,只能push到你帐号下的该项目,原项目并不会获得任何改变。此时,若是你想把你的代码贡献到原项目中,那么,此时就须要使用pull request操做了。
见下图:点击这里来建立一个pull request
点击后,见下图:
此处无非就是将你提交(贡献)的代码作一下详细的说明,让原做者充分了解你这次提交的目的。
编写完毕后,点击“提交 pull request”便可,截止到目前,你已经作完了pull request的建立工做;
此时,原项目就会收到一个pull request的申请,在这里会有显示
因为我这里没有实际的请求,因此显示的是0,若是有的话,点击pull requests
而后就会在界面上显示详细信息,包括:pull request的标题、详细描述以及详细的代码。
在该界面上,管理员能够选择“接受pull request”,若是选择 接受 的话,那么你所提交的代码将会自动合并到原项目中,也就完成了你的贡献。
当你fork一个项目后,若是原做者更新了代码,此后你的项目是确定不会自动更新的。那如何让fork的项目与原项目同步呢?简单的方法固然是再clone一份,不过这样会丢失你对代码修改。
此时,你须要手工同步原项目。
首先进入到clone你fork的项目的本地库
为了与原项目同步,首先须要将原始项目fetch到本地。
git remote add origin https://github.com/xxx/xxx.git #别名origin,指向原始项目 git fetch origin master #fetch orginal下面的master分支
git fetch命令不会自动merge。
而后比较本地的master分支和origin/master分支的差异,而后决定是否进行合并。可以使用merge命令进行合并。
git merge origin/master #将原项目和主项目合并
固然,咱们也能够不用fetch命令,直接用pull命令,差异在于pull命令会自动merge
git pull origin master
get pull命令其实至关于git fetch 和 git merge
在实际使用中,git fetch更安全一些。由于在merge前,咱们能够查看更新状况,而后再决定是否合并。
合并后再使用git push命令提交。
第一次push的时候,可能会出现上述的permission denied错误提示,缘由是你没有为你的项目添加一个public key。
接下来咱们为本机添加一个。
复制id_rsa.pub里面的内容,进入项目主页,点击“Admin”按钮,选择“Deploy Key”,点击“Add deploy key”,将复制的内容粘在里面,如图:
添加完public key后,如今就能够push了。
使用git@osc能够有效帮助咱们实现协做开发。团队成员能够经过受权直接提交代码,非团队成员能够fork他人的项目,可使用pull request贡献代码,当fork的原始项目有更新时,也能够手动同步项目。
[1] 凯哥.git@osc中team开发、fork和pull request的用法.http://my.oschina.net/kzhou/blog/150290
[2] Gevin.github上fork别人项目后如何与源项目保持同步.http://gevin.me/370.html