git@osc中协作开发、复制项目、贡献代码
2015-01-06 09:57
274 查看
git@osc可以让我们托管代码,进行版本控制,同svn等类似平台一样,可以帮助我们实现团队协作开发,无论你是否是项目团队成员。本教程完全适用GitHub
1. 概念
协作开发:顾名思义,就是由多个项目成员共同开发一个项目。
fork:GitHub提供非常方便功能,可以一键将其他人的项目复制到自己账号下。
pull request:非项目成员贡献代码一种方式。
然后点击“添加成员”
在用户栏中,输入成员名称,这块我总觉得有点诡异,下午同事刚刚注册了一个git账号,然后我在此处尝试了各种办法怎么也搜索不到指定用户,大概过了能有2个小时后,有神奇般的能搜索到了,我怀疑git@osc后台做处理了?或者账号注册后有生效时间?不管怎么样,在这块输入要找的用户名即可,比如:我要添加一位叫“杨小杨”的同学,输入“杨小杨”是找不到的,但输入他的账号邮箱“yangshuangjun”就可以找到,截止到目前,我还是没有摸清这个搜索用户的路数。
找到成员后,分配角色,一个是管理员、一个是开发者
这两个角色的区别详见这里:http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9
ok后,点击添加用户即可
随后,这个项目成员通过egit客户端直接clone项目,修改并提交代码,实现协作开发。
当你对某个公开的开源项目感兴趣,你可以通过fork功能方便地将该项目复制到你的账号下,以便学习或者贡献代码。
首先找到你想要的项目,比如:
点击上图右上角的Fork按钮,确认后,该项目就会跑到你的名下了。意思是你对该项目做了一个分叉,相当于OO里边的继承。
此时,利用egit将该项目import至eclipse工程中,然后你可以修改代码,然后commit and push来更新,就像你自己的项目一样。
使用pull request前提条件是你fork他人代码,并进行了修改。当你修改代码并commit后,只能push到你账号下的该项目,原项目并不会得到任何改变。此时,如果你想把你的代码贡献到原项目中,那么,此时就需要使用pull request操作了。
见下图:点击这里来创建一个pull request
点击后,见下图:
此处无非就是将你提交(贡献)的代码做一下详细的说明,让原作者充分了解你此次提交的目的。
编写完毕后,点击“提交 pull request”即可,截止到目前,你已经做完了pull request的创建工作;
此时,原项目就会收到一个pull request的申请,在这里会有显示
由于我这里没有实际的请求,所以显示的是0,如果有的话,点击pull requests
然后就会在界面上显示详细信息,包括:pull request的标题、详细描述以及详细的代码。
在该界面上,管理员可以选择“接受pull request”,如果选择 接受 的话,那么你所提交的代码将会自动合并到原项目中,也就完成了你的贡献。
此时,你需要手工同步原项目。
首先进入到clone你fork的项目的本地库
为了与原项目同步,首先需要将原始项目fetch到本地。
git fetch命令不会自动merge。
然后比较本地的master分支和origin/master分支的差别,然后决定是否进行合并。可使用merge命令进行合并。
当然,我们也可以不用fetch命令,直接用pull命令,差别在于pull命令会自动merge
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了。
[2] Gevin.github上fork别人项目后如何与源项目保持同步.http://gevin.me/370.html
1. 概念
协作开发:顾名思义,就是由多个项目成员共同开发一个项目。fork:GitHub提供非常方便功能,可以一键将其他人的项目复制到自己账号下。
pull request:非项目成员贡献代码一种方式。
2. git@osc如何协作开发
由项目创建者进入指定项目,在菜单栏上点击“设置”,会看到如下界面然后点击“添加成员”
在用户栏中,输入成员名称,这块我总觉得有点诡异,下午同事刚刚注册了一个git账号,然后我在此处尝试了各种办法怎么也搜索不到指定用户,大概过了能有2个小时后,有神奇般的能搜索到了,我怀疑git@osc后台做处理了?或者账号注册后有生效时间?不管怎么样,在这块输入要找的用户名即可,比如:我要添加一位叫“杨小杨”的同学,输入“杨小杨”是找不到的,但输入他的账号邮箱“yangshuangjun”就可以找到,截止到目前,我还是没有摸清这个搜索用户的路数。
找到成员后,分配角色,一个是管理员、一个是开发者
这两个角色的区别详见这里:http://git.oschina.net/oschina/git-osc/wikis/%E5%B8%AE%E5%8A%A9
ok后,点击添加用户即可
随后,这个项目成员通过egit客户端直接clone项目,修改并提交代码,实现协作开发。
3. git@osc的fork功能
什么情况下使用fork?当你对某个公开的开源项目感兴趣,你可以通过fork功能方便地将该项目复制到你的账号下,以便学习或者贡献代码。
首先找到你想要的项目,比如:
点击上图右上角的Fork按钮,确认后,该项目就会跑到你的名下了。意思是你对该项目做了一个分叉,相当于OO里边的继承。
此时,利用egit将该项目import至eclipse工程中,然后你可以修改代码,然后commit and push来更新,就像你自己的项目一样。
4. git@pull request功能
什么时候使用pull reques呢?使用pull request前提条件是你fork他人代码,并进行了修改。当你修改代码并commit后,只能push到你账号下的该项目,原项目并不会得到任何改变。此时,如果你想把你的代码贡献到原项目中,那么,此时就需要使用pull request操作了。
见下图:点击这里来创建一个pull request
点击后,见下图:
此处无非就是将你提交(贡献)的代码做一下详细的说明,让原作者充分了解你此次提交的目的。
编写完毕后,点击“提交 pull request”即可,截止到目前,你已经做完了pull request的创建工作;
此时,原项目就会收到一个pull request的申请,在这里会有显示
由于我这里没有实际的请求,所以显示的是0,如果有的话,点击pull requests
然后就会在界面上显示详细信息,包括:pull request的标题、详细描述以及详细的代码。
在该界面上,管理员可以选择“接受pull request”,如果选择 接受 的话,那么你所提交的代码将会自动合并到原项目中,也就完成了你的贡献。
5. fork后同步原作者修改
当你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的用法./article/3506062.html[2] Gevin.github上fork别人项目后如何与源项目保持同步.http://gevin.me/370.html
相关文章推荐
- git@osc中协作开发、复制项目、贡献代码
- Windows下Git使用记录组建私人代码仓库进行项目开发
- iOS:使用Github托管自己本地的项目代码方式一:(Xcode方式:开发工具Xcode配置Git,由Xcode-->Source Control-->Commit)
- Laravel - 使用Git Clone将项目复制到新开发环境
- 如何使用git协作小型项目开发
- git 多人协作开发的使用(一)---代码上传
- 关闭 晓K的专栏 我的学习历程 目录视图摘要视图订阅 赠书 | 异步2周年,技术图书免费选 每周荐书:渗透测试、K8s、架构(评论送书) 项目管理+代码托管+文档协作,开发更
- 使用Eclipse-Maven-git做Java开发(12)--使用osc的git服务托管代码
- git代码复制到新项目(包含历史记录)
- github,怎么向开源项目贡献自己的代码和协作
- 关闭 晓K的专栏 我的学习历程 目录视图摘要视图订阅 赠书 | 异步2周年,技术图书免费选 每周荐书:渗透测试、K8s、架构(评论送书) 项目管理+代码托管+文档协作,开发更
- js模块化开发---js大项目代码组织和多人协作的解决之道
- git和svn团队协作开发项目,上传服务器
- android studio绑定git进行项目多人合作开发及代码托管
- git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
- github,怎么向开源项目贡献自己的代码和协作
- Github fork 贡献代码,协作开发,pull request
- Windows下Git使用记录--03 Git GUI与金山快盘组建私人代码仓库进行项目开发
- Git项目协同开发学习笔记2:项目库开发协作相关命令
- Laravel - 使用Git Clone将项目复制到新开发环境