怎样在github上协同开发
How to co-work wither parter via github.
Github协同开发情景模拟
Github不仅有很多开源的项目可以参考,同样也是协同开发的最佳工具,接下来的就模拟一下协同开发的过程。
项目发起者:koffuxu
项目贡献者之一:xugangfeng
1,koffuxu发起了一个项目,然后发布到github上,邀请xugangfeng来协同开发
1.1 在github上 New Repository
1.2 在koffuxu的服务器clone下这个repository,然后把自己的初步内容添加到这个仓库
| 1 | git clone https://github.com/koffuxu/Embedded_Android_in_Chinese.git |
1.3 把自己的基础项目push到github
| 1 | git push -u origin master |
2,xugangfeng接到邀请,开发协同开发这个项目,首先先建好开发目录
2.1 进入koffuxu的github项目地址(https://github.com/koffuxu/Embedded_Android_in_Chinese.git),先fork这个项目到自己(xugangfeng)的项目中
2.2 把fork过来的项目clone到xugangfeng的本地
| 1 | git clone https://github.com/xugangfeng/Embedded_Android_in_Chinese.git |
2.3 新建并切换到工作(dev)分支
| 1 | git brach dev |
| 2 | git checkout dev |
2.4 把koffuxu的项目添加xugangfeng的远程仓库
| 1 | git remote add upstream https://github.com/koffuxu/Embedded_Android_in_Chinese |
2.5 把koffuxu的分支拿下来
| 1 | git remote update |
2.6 把koffuxu的maser分支更新到本地
2.7 合并koffuxu的分支到本地(其实第一次可以不需要)
| 1 | git rebase upstream/master |
3,xugangfeng实现了一个功能,现在他要开始提交这个commit了。
3.1 当然这个是正常代码的提交,大概流程如下
| 1 | git add test.md |
| 2 | git commit -m "modify from xugangfeng" |
| 3 | git push -u origin dev |
3.2 这时候,xugangfeng进入github网页,进入compare & pull request,填写一些信息,crete pull request即可。
4,koffuxu接下来把xugangfeng的提交合并到master分支
4.1 进入github koffux的项目中,可以看到有一个pull request的提示,然后comfirm merge即可
4.2 接下来进入koffuxu的本地,执行Git pull查看是否已经更新了。
5,还有一个场景,就是koffuxu有更新了,xugangfeng需要更新合并
5.1 koffuxu又在c4.md新增了一条
5.2 贡献者xugangfeng,就需要在原来的基本上更新合并了。
| 1 | git remote update upstream |
5.3 xugangfeng开始要合并更新
| 1 | git rebase upstream/master |
5.4 git log查看,已经合并过来了
整个过程比较啰嗦,慢慢看吧。有疑问可以提出来。
怎样在github上协同开发的更多相关文章
- 使用git和github进行协同开发流程
(本文假设各位已经对基本git的基本概念.操作有一定的理解,如无相关git知识,可以参考Pro Git这本书进行相关的学习和练习) 很多项目开发都会采用git这一优秀的分布式版本管理工具进行项目版本管 ...
- Github之协同开发
一.协同开发 1.引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢? 要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来.所以, ...
- Git学习笔记(三)远程库(GitHub)协同开发,fork和忽略特殊文件
远程库 远程库,通俗的讲就是不再本地的git仓库!他的工作方式和我们本地的一样,但是要使用他就需要先建立连接! 远程库有两种,一个是自己搭建的git服务器:另一种就是使用GitHub,这个网站就是提供 ...
- 教程:安装禅道zentao项目管理软件github上的开发版
该文章转自:吕滔博客 直接从github拉下来的禅道的源码,是跑不起来的.除非你按我的教程来做...哈哈哈(不要脸)~~~~ 禅道官网提供的版本包是带了有安装文件,并有打包合成一些css.js文件的. ...
- github在不同电脑上协同开发
当我换了电脑后,开发自己的github项目遇到了一些问题. 首先,git clone 'repository url'拉取下来项目,开始开发项目发.修改了一些文件后,当要git commit, git ...
- github上最全的资源教程-前端涉及的所有知识体系
前面分享了前端入门资源汇总,今天分享下前端所有的知识体系. 个人站长对个人综合素质要求还是比较高的,要想打造多拉斯自媒体网站,不花点心血是很难成功的,学习前端是必不可少的一个环节, 当然你不一定要成为 ...
- github上最全的资源教程-前端涉及的所有知识体系【转】
github上最全的资源教程-前端涉及的所有知识体系[转自:蓝猫的博客] 综合类 综合类 地址 前端知识体系 http://www.cnblogs.com/sb19871023/p/3894452.h ...
- Git之协同开发
Github之协同开发 一.协同开发 1.引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢? 要提交,提交到dev吗,都上传了一半,这样回家拿出来的 ...
- Pull Request的过程、基于git做的协同开发、git常见的一些命令、git实现代码的review、git实现版本的管理、gitlab、GitHub上为开源项目贡献代码
前言: Pull Request的流程 1.fork 首先是找到自己想要pull request的项目, 然后点击fork按钮,此时就会在你的仓库中多出来一个仓库,格式是:自己的账户名/想要pull ...
随机推荐
- centos安装配置nginx,ssl生产和配置教程
[一]nginx安装nginx安装带ssl扩展: cd /usr/local/src #进入用户目录wget http://nginx.org/download/nginx-1.15.0.tar.gz ...
- 【转】Spring框架深入理解
参考这篇文章: http://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/ Spring内部分为Beans, Context 和 ...
- cms完整视频教程+源码 孔浩老师 全131讲
话不多说,请看如下链接, 项目在此文件夹目录下: JAVA专区>3.深入Java Web>3.1.cms项目 很多反馈说无效 本次 2016.09.12 发布最新链接 链接:https ...
- 函数柯里化 curry
一.函数柯里化的特性: (1)参数复用 $.ajax // 示例一 function ajax(type,url,data) { var xhr = new XMLHttpRequest(); xhr ...
- weexapp 开发流程(二)框架搭建
1.创建 入口文件 src / entry.js /** * 入口文件 */ import App from './App.vue' import router from './router' // ...
- 基于社交网络的情绪化分析IV
基于社交网络的情绪化分析IV By 白熊花田(http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢. 前面进行了微博数据的抓取,简单的处理,类似度分析.后面两篇进行学 ...
- Ubuntu搭建Android开发环境
前言 由于迁移到新的笔记本,所以Android开发环境须要又一次配置了.android官网有配置教程,我正好回想一遍 配置Java环境 下载jdk.官网地址:http://www.oracle.com ...
- phpExcel大数据量情况下内存溢出解决
版本:1.7.6+ 在不进行特殊设置的情况下,phpExcel将读取的单元格信息保存在内存中,我们可以通过 PHPExcel_Settings::setCacheStorageMethod() 来设置 ...
- linux 输入子系统(1) -Event types
输入系统协议用类型types和编码codecs来表示输入设备的值并用此来通知用户空间的应用程序. input协议是一个基于状态的协议,只有当相应事件编码对应的参数值发生变化时才会发送该事件.不过,状态 ...
- F08标准中Open命令的newunit选项
从gfortran 4.5开始Open命令开始支持newunit选项,示例如下: integer :: u open(newunit=u, file="log.txt", posi ...