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,然后把自己的初步内容添加到这个仓库

git clone https://github.com/koffuxu/Embedded_Android_in_Chinese.git

1.3 把自己的基础项目push到github

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的本地

git clone https://github.com/xugangfeng/Embedded_Android_in_Chinese.git

2.3 新建并切换到工作(dev)分支

git brach dev
git checkout dev 

2.4 把koffuxu的项目添加xugangfeng的远程仓库

git remote add upstream https://github.com/koffuxu/Embedded_Android_in_Chinese

2.5 把koffuxu的分支拿下来

git remote update

2.6 把koffuxu的maser分支更新到本地

2.7 合并koffuxu的分支到本地(其实第一次可以不需要)

git rebase upstream/master
 

3,xugangfeng实现了一个功能,现在他要开始提交这个commit了。

3.1 当然这个是正常代码的提交,大概流程如下

git add test.md
git commit -m "modify from xugangfeng"
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,就需要在原来的基本上更新合并了。

git remote update upstream

5.3 xugangfeng开始要合并更新

git rebase upstream/master

5.4 git log查看,已经合并过来了

整个过程比较啰嗦,慢慢看吧。有疑问可以提出来。

怎样在github上协同开发的更多相关文章

  1. 使用git和github进行协同开发流程

    (本文假设各位已经对基本git的基本概念.操作有一定的理解,如无相关git知识,可以参考Pro Git这本书进行相关的学习和练习) 很多项目开发都会采用git这一优秀的分布式版本管理工具进行项目版本管 ...

  2. Github之协同开发

    一.协同开发 1.引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢? 要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来.所以, ...

  3. Git学习笔记(三)远程库(GitHub)协同开发,fork和忽略特殊文件

    远程库 远程库,通俗的讲就是不再本地的git仓库!他的工作方式和我们本地的一样,但是要使用他就需要先建立连接! 远程库有两种,一个是自己搭建的git服务器:另一种就是使用GitHub,这个网站就是提供 ...

  4. 教程:安装禅道zentao项目管理软件github上的开发版

    该文章转自:吕滔博客 直接从github拉下来的禅道的源码,是跑不起来的.除非你按我的教程来做...哈哈哈(不要脸)~~~~ 禅道官网提供的版本包是带了有安装文件,并有打包合成一些css.js文件的. ...

  5. github在不同电脑上协同开发

    当我换了电脑后,开发自己的github项目遇到了一些问题. 首先,git clone 'repository url'拉取下来项目,开始开发项目发.修改了一些文件后,当要git commit, git ...

  6. github上最全的资源教程-前端涉及的所有知识体系

    前面分享了前端入门资源汇总,今天分享下前端所有的知识体系. 个人站长对个人综合素质要求还是比较高的,要想打造多拉斯自媒体网站,不花点心血是很难成功的,学习前端是必不可少的一个环节, 当然你不一定要成为 ...

  7. github上最全的资源教程-前端涉及的所有知识体系【转】

    github上最全的资源教程-前端涉及的所有知识体系[转自:蓝猫的博客] 综合类 综合类 地址 前端知识体系 http://www.cnblogs.com/sb19871023/p/3894452.h ...

  8. Git之协同开发

    Github之协同开发 一.协同开发 1.引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢? 要提交,提交到dev吗,都上传了一半,这样回家拿出来的 ...

  9. Pull Request的过程、基于git做的协同开发、git常见的一些命令、git实现代码的review、git实现版本的管理、gitlab、GitHub上为开源项目贡献代码

    前言: Pull Request的流程 1.fork 首先是找到自己想要pull request的项目, 然后点击fork按钮,此时就会在你的仓库中多出来一个仓库,格式是:自己的账户名/想要pull ...

随机推荐

  1. js监听鼠标点击操作

    element.addEventListener('click', function() { /* do stuff here*/ }, false);

  2. Hbase调用JavaAPI实现批量导入操作

    将手机上网日志文件批量导入到Hbase中.操作步骤: 1.将日志文件(请下载附件)上传到HDFS中,利用hadoop的操作命令上传:hadoop  fs -put input  / 2.创建Hbase ...

  3. iOS类的合理设计,面向对象思想

    每天更新的东西可能有反复的内容.当时每一部分的知识点是不同的,须要大家认真阅读 这里介绍了iOS类的合理设计.面向对象思想 main.m #import <Foundation/Foundati ...

  4. C++ primer 模板与泛型编程

    继续浏览c++ primer 看到模板与泛型编程这章.就顺便把这几节的代码综合了下,对一个Queue队列模板的实现 贴一下代码(看完书.自己敲,忘记了哪再看下书) #include <ostre ...

  5. [转载]php 数组 类对象 值传递 引用传递 区别

    一般的数据类型(int, float, bool)不做这方面的解说了 这里详细介绍一下数组和的类的对象作为参数进行值传递的区别 数组值传递 实例代码: <?php function main() ...

  6. MySQL优化之——触发器

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46763665 触发器是一个特殊的存储过程,不同的是存储过程要用CALL来调用,而触 ...

  7. UVA - 11019 Matrix Matcher hash+KMP

    题目链接:传送门 题解: 枚举每一行,每一行当中连续的y个我们hash 出来 那么一行就是 m - y + 1个hash值,形成的一个新 矩阵 大小是 n*(m - y + 1), 我们要找到x*y这 ...

  8. ivy

    ivy https://ant.apache.org/ivy/ Apache Ivy™ is a popular dependency manager focusing on flexibility ...

  9. compile java sources

    Information:javac 1.8.0_91 was used to compile java sources D:\myjdk\bin\java "-javaagent:C:\Pr ...

  10. matlab max函数

    >> a=[1,6,3;7,5,6] a = 1 6 3 7 5 6 >> [q,p]=max(a,[],2) 返回每行最大值,q是结果.p是索引 q = 6 7 p = 2 ...