首先声明:Github上关于代码团队协作方式有很多种,这里只讲述Github上其中的一种代码团队协作方式。

 
Pull请求(Pull request)

1 综述

    协作者通过fork一个新的代码库用来独立开发,并通过Github上的Pull Request,将变更贡献回原始代码库。这其中对Github的要求较低,至少免费使用,操作也相对简单,是一种不错的协作方式。以下将图文并茂的展示整个协作过程!
 

2 步骤

2.1 Fork拷贝原始代码仓库

    首先在原始代码库的Github网页上Fork其代码仓库,此时会在自己的Github上生成原始代码库的一份拷贝。注意这里有两种用户:原始代码仓库拥有者和Fork代码仓库拥有者。
  1. 输入原始代码库网址
  2. 点击网页上的Fork按钮,拷贝原始代码仓库,此时会跳转到自己的Github账号页面上。

2.2 克隆Fork代码仓库到本地

    接下来使用git clone命令克隆一份Fork代码库到本地计算机。
  1. git clone git@github.com:HengStruggle/GitTest.git
    进入到克隆下来的Git代码库里,可对文件进行修改,最后在提交到本地代码仓库。
  1. cd GitTest //进入到克隆下来的Git代码库里
    打印GitTest.txt文件内容,并在文件尾添加自己的用户名,最后再提交到本地代码仓库。说明:一个较好的习惯是在master上另建一个分支,再进行修改,最后再提交新建的分支;主分支用于存储原始代码仓库的代码
 cat .\GitTest.txt
"version 0.2 by HengStruggle">>.\GitTest.txt
git commit --all -m "version 0.2"

2.3 Push 本地代码仓库到Github代码仓库

    接下来将本地代码仓库推送到Github上的Fork代码仓库上,注意不是原始代码仓库。
  1. git push -u origin master

2.4 最后一步:Pull request

    进入我们fork的代码库的GitHub页面,选择需要提交给原始代码仓库的分支,然后点击Pull Request按钮,再点击new pull request按钮,最后再确认。如图1,图2,图3。至此你作为协作者的任务已经完成,接下来的事就是等待原始仓库拥有者合并你提交的代码。
 
图1
 
图2
 
图3
 

2.5 原始仓库拥有者合并收到的Pull请求

    作为原始仓库拥有者有两种方式合并收到的Pull请求。说明:推荐在本地计算机上进行合并方式,灵活性较强。

2.5.1 在GitHub上合并

  1. Github上合并,首先要找到合并页面。进入合并页面的方式有多种,其中一种可以打开Github上主页面,点击左上角的铃铛图标,可以查看最近收到的Pull请求;另外在主页左边也可以直接查看别人的请求信息。如图4。
  2. 确保没有冲突之后,点击Merge pull request按钮,如图5。
  3. 最后合并成功,如图6。
  4. 注意:在GitHub上进行合并,必须确保没有冲突产生

2.5.1 在本地计算机上进行合并

  1. 合并前先在本地仓库里新建一个分支

    1. git checkout -b HengStruggle-master master
  2. 拉取协作者远程仓库的Pull请求分支到本地仓库,注意这里的Pull请求分支不一定总是master,要视具体情况而定。注意:这里拉取的是协作者的代码仓库的Pull请求分支!
    1. git pull https://github.com/HengStruggle/GitTest.git master
  3. 常规的合并分支并Push代码
     git checkout master
    git merge --no-ff HengStruggle-master
    git push origin master
 
图4
 
图5
 
图6

参考链接:使用GitHub进行团队合作 - Danny Chen - 博客园

本文链接:http://www.cnblogs.com/cposture/p/4903767.html

【原创】Github团队协作之Pull请求的更多相关文章

  1. 超详细!Github团队协作教程(Gitkraken版)

    超详细!Github团队协作教程(Gitkraken版) 一.前期工作 1. 在 Github 上创建 organization step1. 登录Github网站,点击右上角头像,选择 " ...

  2. GitHub团队协作流程

    说来惭愧,这么长时间,第一次参与修改开源项目,所以整理了一份GitHub团队协作流程,作为备忘,文章大部分内容参考https://www.cnblogs.com/schaepher/p/4933873 ...

  3. github团队协作教程

    跟着笔者魔鬼般的步伐,我们一起来瞅瞅一个团队协作的任务如何进行版本管理吧~ 要跟上哦~ =============================================== 首先我们先来看下 ...

  4. 协同开发功能——Github团队协作

    最近需要写一个HoloLens开发的简明介绍,其中要测试几个demo.用到github以团队协作,像下面是简单的事件记录. 一.创建项目 1. 2.项目设置 名称 描述description Init ...

  5. Github 团队协作基本流程与命令操作 图解git工作流程

    # 先 fork 项目到自己 github # 1. 从自己仓库克隆到本地(clone 的是项目指定的默认分支,比如 master) git clone git@github.com:me/em.gi ...

  6. github团队协作

    1.打开项目 2.将成员添加到项目成员内 3.创建分支 4.提交修改到远程仓库 5.发起讨论Pull requests 6.以讨论结果修改后,合并到master

  7. 论github客户端的使用与团队协作

    首先:如果你觉得小编写的一般般,那你就默念小编是渣渣,我相信你就会好起来的 -------------------------------------------------------------- ...

  8. 图文详解如何利用Git+Github进行团队协作开发

    团队协作开发中,大部分都会用到版本控制软件,比如Git.Svn等.本文将通过一个实例,详细讲解在真实的工作环境中,一个团队应该如何利用Git+Github进行协作开发,即详解Git工作流程.并就其中比 ...

  9. github小技巧之Creating a pull request 创建 pull 请求

    创建一个 pull 请求是为了协作更改存储库.这些变化会产生一个分支,它确保主分支保持干净整洁. 与commits提交是不同的,提交是fork之后的一种操作. 在你可以打开一个 pull 请求之前,您 ...

随机推荐

  1. 支持向量机(SVM)利用网格搜索和交叉验证进行参数选择

    上一回有个读者问我:回归模型与分类模型的区别在哪?有什么不同,我在这里给他回答一下 : : : : 回归问题通常是用来预测一个值,如预测房价.未来的天气情况等等,例如一个产品的实际价格为500元,通过 ...

  2. JPA-学习02

    一.主键生成策略 主键:确定一张表的唯一性东西(非空且唯一) 分为:自然主键和代理主键. 生成策略: identity:自增策略(1.值必须是数字,2.数据库支持) sequence:序列策略(同上, ...

  3. Day04 (黑客成长日记) 集合记录

    集合 集合:是可变的数据类型 ,它里面的数据类型必须是不可变的数据类型,无序,不重复,不同于字典,他有元素,没有键值对(编码不常用) li = set([1,2,3]) li = {'alex','w ...

  4. Note | Git

    目录 1. 出发 A. 安装 B. 设置机器身份 C. 创建版本(仓)库 repository D. 可管理文件 2. 基础操作 A. 添加文件至仓库 B. 修改文件并查看修改 C. 查看历史变动 D ...

  5. maven + eclipse + tomcat热部署 引自:http://jingpin.jikexueyuan.com/article/23068.html

    方案二: 1.修改tomcat的server.xml配置文件,在host结点下添加如下代码 Xml代码   <Context docBase="F:\eclipse_workspace ...

  6. $(document).on('click','.classname',function(){}); VS $('.classname').on('click',function(){});

    jquery中用on来绑定事件,经常的写法有$(document).on('click','.classname',function(){});$('.classname').on('click',f ...

  7. 【repost】js window对象属性和方法相关资料整理

    window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval mov ...

  8. peewee基本使用

    PEEWEE基本使用 Content Ⅰ  安装Ⅱ  链接数据库Ⅲ  建表 Ⅳ  增删改 Ⅴ  基础查询 Ⅵ  ForeignKey Ⅷ  事务 参考官方文档:http://docs.peewee-o ...

  9. maven配置parent pom查找策略

    当我们在pom.xml中添加parent pom的时候,通常maven会按照如下顺序查找parent依赖: relativePath标签指向的路径. 默认的relativePath路径".. ...

  10. Python 日常技巧

    jupyter notebook 本地开启jupyter,画图需打开限制:jupyter notebook --NotebookApp.iopub_data_rate_limit=2147483647 ...