首先声明: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. Notes on Operating System

  2. kali入门

    第一章:入门kalilinux By:鬼尘 第一章基本上就是涵盖以下的主题: ·kali的发展简史 ·kali的一般用途 ·kali的下载与安装 ·kali的配置与更新 在本章结尾部分,我们还会介绍k ...

  3. Spring注解使用注意点

    1 @RestController @Controller  @RestController注解相当于@ResponseBody + @Controller合在一起的作用.  如果只是使用@RestC ...

  4. 去掉jenkins的首页警告

    有时候jenkins首页会弹出一些升级警告之类的东西,不喜欢的直接屏蔽掉就行. 类似于这样: 在  全局安全配置里 将一下项目的勾去掉就行 应用,保存.这样就清爽多了

  5. 深度学习Tensorflow生产环境部署(下·模型部署篇)

    前一篇讲过环境的部署篇,这一次就讲讲从代码角度如何导出pb模型,如何进行服务调用. 1 hello world篇 部署完docker后,如果是cpu环境,可以直接拉取tensorflow/servin ...

  6. mysql命令行创建表,插入表数据

    create table t_hero( id int unsigned auto_increment primary key, name varchar(10) unique not null, a ...

  7. Django富文本需要添加配置

    TINYMCE_DEFAULT_CONFIG = { 'theme': 'advanced', 'width': 600, 'height': 400, }

  8. 使用MagicOnion实现gRPC

    1.什么是gRPC 官方文档:https://grpc.io/docs/guides/index.html 2.什么是MagicOnion MagicOnion开源地址:https://github. ...

  9. 从字节码看java中 this 的隐式传参

    从字节码看java中 this 隐式传参具体体现(和python中的self如出一辙,但是比python中藏得更深),也发现了 static 与 非 static 方法的区别所在! static与非s ...

  10. 免费翻译API破解(简易翻译工具)

    思路:选取有道翻译,用fiddler抓取接口请求信息,提取相关请求参数,破解加密部分. 主要请求数据: i  :翻译文本 ts:时间戳 salt:ts +随机数 sign:加密信息,经过抓取信息,发现 ...