git@osc中team开发、fork和pull request的用法

原创
2013/08/05 18:11
阅读数 7W

下午的时候,试着跟同事共同用git@osc来开发项目,现将一些使用过程记录下来,希望对大家有所帮助。

概念

团队开发:顾名思义,就是由多个项目成员共同开发一个项目,就像我们平时利用svn或cvs等版本控制服务器一样。

fork+pull request:假如你想为某个现有的开源项目贡献代码而你又不是该项目的项目成员的话,就用这种方式来提交你的修改。

在git@osc上如何进行

团队开发:

由项目创建者进入指定项目,在菜单栏上点击“设置”,会看到如下界面

然后点击“添加成员”


在用户栏中,输入成员名称,这块我总觉得有点诡异,下午同事刚刚注册了一个git账号,然后我在此处尝试了各种办法怎么也搜索不到指定用户,大概过了能有2个小时后,有神奇般的能搜索到了,我怀疑git@osc后台做处理了?或者账号注册后有生效时间?不管怎么样,在这块输入要找的用户名即可,比如:我要添加一位叫“杨小杨”的同学,输入“杨小杨”是找不到的,但输入他的账号邮箱“yangshuangjun”就可以找到,截止到目前,我还是没有摸清这个搜索用户的路数。

找到成员后,分配角色,一个是管理员、一个是开发者

这两个角色的区别详见这里:http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9

ok后,点击添加用户即可

随后,这个项目成员通过egit客户端直接clone项目,然后提交代码即可,使用上与svn极其类似。

fork+pull request:

首先找到你想要的项目,比如:

点击上图右上角的Fork按钮,确认后,该项目就会跑到你的名下了。意思是你对该项目做了一个分叉,相当于OO里边的继承,你可以在原项目基础上添加你的新逻辑,换句话说,Fork之后,这个项目就是你的了。

此时,利用egit将该项目import至eclipse工程中,然后你可以修改代码,然后commit and push来更新。

注意此时commit仅更新了你Fork后的项目,原项目并不会得到任何改变,此时,如果你想把你的代码贡献到原项目中,那么,此时就需要使用pull request操作了。

见下图:点击这里来创建一个pull request

点击后,见下图:

此处无非就是将你提交(贡献)的代码做一下详细的说明,让原作者充分了解你此次提交的目的。

编写完毕后,点击“提交 pull request”即可,截止到目前,你已经做完了pull request的创建工作;

此时,原项目就会收到一个pull request的申请,在这里会有显示

由于我这里没有实际的请求,所以显示的是0,如果有的话,点击pull requests

然后就会在界面上显示详细信息,包括:pull request的标题、详细描述以及详细的代码。

在该界面上,管理员可以选择“接受pull request”,如果选择 接受 的话,那么你所提交的代码将会自动合并到原项目中,也就完成了你的贡献。

上边讲的过程和概念完全适用于Github,希望对大家有所帮助。

展开阅读全文
打赏
26
185 收藏
分享
加载中
我有10次commit 但我只想针对第8次commit发送pull request该怎么破?
2015/09/15 10:19
回复
举报

引用来自“花儿笑弯了腰”的评论

请教一个问题,比如我现在fork了别人的代码,修正了一个BUG 后pull request上去了,过了段时间,原代码已经了更新了,怎么保证我fork的代码到最新状态,后去修改。

引用来自“天蝎冥王”的评论

只需要做一次:git remote add osc http://git.oschina.net/oschina/git-osc.git即可。
这只是添加了一个远程库。还得手动 fetch 一下吧?
2015/06/04 19:34
回复
举报
帮助了,感谢凯哥
2015/05/20 10:53
回复
举报
osc是基于gitlab修改的,我们访问的不是真正的系统,是系统生成的缓存版,所以有部分功能要等缓存更新了才能看到效果。用户的添加就更加鸡肋了,以前我开发过这个系统。
2015/05/09 08:22
回复
举报

引用来自“花儿笑弯了腰”的评论

请教一个问题,比如我现在fork了别人的代码,修正了一个BUG 后pull request上去了,过了段时间,原代码已经了更新了,怎么保证我fork的代码到最新状态,后去修改。
只需要做一次:git remote add osc http://git.oschina.net/oschina/git-osc.git即可。
2015/02/05 15:30
回复
举报
请教一个问题,比如我现在fork了别人的代码,修正了一个BUG 后pull request上去了,过了段时间,原代码已经了更新了,怎么保证我fork的代码到最新状态,后去修改。
2014/04/20 18:12
回复
举报
评论错了,在这里不能删除自己的评论????
2014/04/16 14:39
回复
举报
晕了,看评论好像没啥人去动代码,提交完了才发现前面都有一二十人了啊
2014/04/16 14:37
回复
举报
请问如何只把某几个文件创建一个pull request提交上去,而不是把所有的改动都pull上去
或者原作者那端如何只选择某个commit进行合并。谢谢
2014/04/16 10:21
回复
举报
@恺哥
你文章中讲到的内容已经明白了,我现在的问题是:
如果我Fork了一个开源项目,没有对其进行过修改,过了几天后我发现在原项目已经更新了,我应该如何让我Fork的项目与原项目保持同步呢? 谢谢!
2014/03/14 11:32
回复
举报
更多评论
打赏
33 评论
185 收藏
26
分享
返回顶部
顶部