首先声明: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. C++动态库的几点认识

    1.动态库也有lib文件,称为导入库,一般大小只有几k: 2.动态库有静态调用和动态调用两种方式: 静态调用:使用.h和.lib文件 动态调用: 先LoadLibrary,再GetProcAddres ...

  2. 深入C#

     深入C# String类 C#中的String类他是专门处理字符串的(String),他在System的命名空间下,在C#中我们使用的是string 小写的string只是大写的String的一个别 ...

  3. python-mysql驱动64位

    安装Python-MySQL驱动一直没有成功: https://pypi.python.org/pypi/MySQL-python/1.2.5#downloads 上面网站下的版本安装都不能通过 提示 ...

  4. (转)jira7.2安装、中文及破解

    转自:http://www.cnblogs.com/ilanni/p/6200875.html 本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanni ...

  5. OpenCV Mat格式存储YUV图像

    YUV图像用的比较多,而且YUV图像的格式众多(YUV格式可以参考YUV pixel formats),如何用OpenCV的Mat类型来存储YUV图像也是经常遇到的问题. 对于YUV444图像来说,就 ...

  6. WPF 开发备忘录

    运营日: select t.*   from (select ab.*, bs.station_cn_name, bd.device_name           from audit_tvm_cas ...

  7. html快速编写

    1. 嵌套操作---------- 子操作: > div>ul>li <div> <ul> <li></li> </ul> ...

  8. Openvswitch手册(2): OpenFlow Controller

         我们这一节主要来看Controller Controller有两种: Primary Controller: 真正控制vswitch的flow table,vswitch会保持和contro ...

  9. MySQL9:索引实战

    索引 无论是面试,还是实际工作中,对于一个Java程序员来说,数据库优化是避不开的一个技术点,关于数据库的优化,在性能达不到要求的情况下,我大致给出以下几个方向: (1)优化表结构,对常用字段和非常用 ...

  10. WEB站点服务器安全配置

    WEB站点服务器安全配置   本文转自:i春秋社区   // 概述 // 熟悉网站程序 // 更改默认设置的必要性 // 目录分析与权限设置技巧 // 防止攻击其他要素 // 公司官网不可忽视的安全性 ...