首先声明: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. IPC rtsp转发服务器搭建

    sudo apt-get install libmoose-perl liburi-perl libmoosex-getopt-perl libsocket6-perl libanyevent-per ...

  2. maven 编码 UTF-8 的不可映射字符

    maven编译时报错,后面发现代码是用GBK编码编写,maven默认是用utf-8来编译.修改pom.xml <build> <plugins> <plugin> ...

  3. HTML5标签汇总及知识学习线路总结

    HTML5标签汇总,以及知识学习线路总结.

  4. ppt制作动态表格与文字

          在工作中经常与ppt打交道的小伙伴们,是不是非常想让自己做的ppt图表能够动起来,显得高大上一点呢?比如让柱形图慢慢长起来,让折线图慢慢画出来,让文字像字幕一样缓缓上升?本文将给大家整理几 ...

  5. future项目上报

    private String name;//预警名称 private String detail;//详细 用于定义位置和报错信息,越多越好private String code;//编码 1001是 ...

  6. FPGA跨时钟域握手信号的结构

    FPGA跨时钟数据传输,是我们经常遇到的问题的,下面给出一种跨时钟握手操作的电路结构.先上图 先对与其他人的结构,这个结构最大的特点是使用 req 从低到高或者高到低的变化 来表示DIN数据有效并开始 ...

  7. c# 反射小Demo

    今天看了一下C#的反射,之前一直感觉反射是一种很高大上的东东,现在才发现不过是纸老虎而以. 所谓的反射就是,只是知道一个它是一个对象不知道其中有什么字段方法属性等,而反射就是用来获取一个未知对象的字段 ...

  8. [翻译] Visual Studio 2019 RC版发布

    [翻译] Visual Studio 2019 RC版发布 原文: Visual Studio 2019 Release Candidate (RC) now available 今天,我们将分享 V ...

  9. javascript之location详解

    window.location.hash 使用说明 今天给大家详细汇总了关于window.location.hash的知识点,属性以及用法等等,非常的实用,并附上了例子,有需要的小伙伴可以参考下. l ...

  10. Kali学习笔记8:四层发现

    1.基于TCP协议 优点: 1.可路由且结果可靠 2.不太可能会被防火墙过滤 3.甚至可以发现端口 缺点: 速度较慢(三次握手) 利用Scapy发送ACK数据包: 配置数据包: 发送数据包: 看一下收 ...