一、前言

昨晚应老师要求参与教材的修正工作,需要涉及到github上的PR(Pull Request)操作。本来以为很简单的一个事情,没想到还得让我翘课,花了一个多小时的时间才搞明白,收获挺多。饭先不吃,先写博客,分享出来。

二、实现步骤

简单暴力的实现步骤,先不做太深入的细节分析。

为了叙述方便,特此声明:

此处小明要与小红进行合作,小明需要对小红在GitHub上的的Repository进行fork等一系列的操作。

2.1 将小红在GitHub上的Repository clone到小明的本地电脑

这一步看起来很简单事实上涉及到一个细节,我之前一直都忽略了。

上图:

2.1.1 fork小红在GitHub上的Repository到小明的GitHub

此操作的作用是将k小红在GitHub上的Repository到小明的GitHub,这时小明的GitHub上多了一个fork的Repository;

如下图:

2.1.2 clone小明的GitHub Repository到小明的本地电脑

打开刚才fork的Repository,复制该Repository的SSH使用命令

git clone git@github.com:GaoZiqiang/firstGit.git

clone到小明的本地电脑;

2.2 与小红在GitHub上的的Repository建立新的链接

2.2.1查看当前链接情况

使用

git remote -v

命令查看一下小明的本地Repository与哪些远程仓库建立了链接,你会发现:只与小明在GitHub的Repository建立了链接,很显然没有与小红在GitHub上的Repository建立链接,如下图:

2.2.2 与小红的GitHub上的Repository建立链接

现在使用命令

git remote add upstream https://github.com/timo1160139211/firstGit.git

与小红在GitHub上的Repository建立链接,注意此处的SSH为小红的GitHub上的Repository的SSH;

查看:

upstream

2.3 修改Commit

2.3.1 新建工作分支

使用命令:

git checkout -b xiaoming-branch

新建并切换到新建的分支 xiaoming-branch;

使用命令:

git branch

查看当前所在分支。

2.3.2 修改

比如新建文件PRTest;

2.3.3 提交

使用 git add PRTest ,git commit ,git push等系列命令提交到小明的GitHub上的Repository(一定注意,是小明的)

2.4 发起PR(Pull Request)

2.4.1 Comparing changes

a.到小明的GitHub的Repository上点击Pull Requests,再点击New pull requests按钮;

如下图:

b.进入Comparing changes界面。



2.4.2 Create pull request

a.点击Create pull request按钮;

b.填写相关信息,在点击Create pull request按钮即可。

2.4.3 Merge

这是小红的任务了。

// 移除本地关联

git remote rm origin

三、个人总结

需要注意的细节主要有以下几点:

  1. fork这个操作的一系列细节;
  2. 与两个远程仓库分别建立链接;
  3. 将修改提交到自己的远程仓库;
  4. Compare需要注意。

四、待解决问题

  1. 如何同步远程仓库(参见下一篇博客);
  2. Merge时出现冲突如何处理。

[原文]

[原文]

git学习--GitHub上如何进行PR(Pull Request)操作的更多相关文章

  1. GitHub中PR(Pull request)操作

    1. 贡献代码: 贡献代码,通俗的说,就是自己修改了代码,希望合并到别人的Repository(仓库)中.将自己的智慧贡献给开源社区.下面将详细讲解步骤 1.1 第一步:fork 在GitHub社区闲 ...

  2. (转)GitHub中PR(Pull request)操作 - 请求合并代码

    转:https://www.jianshu.com/p/b365c743ec8d 前言 本文尽量使用图形工具介绍如何向开源项目提交 Pull Request,一次亲身经历提交 PR 1.fork 项目 ...

  3. (转载)新手如何正确理解GitHub中“PR(pull request)”中的意思

    我从知乎看到的两个答案,分别从实际意义以及语言学角度告诉你改怎么理解PR,很简洁,这个理解非常棒,会解决新手刚看到PR(pull request)这个词时的困惑.   实际意义:   有一个仓库,叫R ...

  4. 本地代码git到github上

    本地代码git到github上 对于个程序员来说,不写自己的博客,没有自己的作品集没有Github就不算好的程序员!咳咳~ 开个玩笑.对于我个人来说,要做个程序员,就要有自己的作品集和技术博客(我说是 ...

  5. 用Git向gitHub上传项目

    用Git向gitHub上传项目 1.安装git 2.在git安装目录下,运行git-bash.exe  如图所示 3.在git中绑定你注册gitHub是的用户名.邮箱. $ git config -- ...

  6. dragloader.js帮助你在页面原生滚动下实现Pull Request操作

    dragloader.js是一个面向移动Web开发的JavaScript库,帮助开发者在使用页面原生滚动时,模拟上/下拉手势,实现Pull Request操作. 在移动设备上,一般会使用 drag d ...

  7. git向gitHub上push和pull数据.

    1.在gitHub上首先建立仓储.这个过程就不在啰嗦了. 2.注意上图中右下角的https,ssh等东西. 3.向git上传的工具特别多.我这里用的cygwin. 至于cygwin自己到网上去下载.安 ...

  8. Git学习笔记-上传一个新的项目到GitHub上

    前提: 已有Github账号,已在Github上建立了仓库,已在Github上配置了SSH,已上传过一些项目到Github上 目标: 目前有一个新的项目,需要上传到github上 我的做法记录: 1. ...

  9. git与github安装、配置、pull、push

    操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...

  10. git学习——Github关联(2)

    一.参考学习链接 1.重点看Github与Git的关联. http://www.cnblogs.com/schaepher/p/5561193.html#github 2.git的全面详细介绍. ht ...

随机推荐

  1. Oracle通过数据库链连接KingbaseES

    测试环境: ip 数据库版本 192.168.254.135 oracle 11g 192.168.254.137 V008R006C005B0023 通过oracle官网得知,Oracle使用DG4 ...

  2. ue4-c++定时器和时间轴简易模板

    定时器Delay 在头文件中需要声明TimerHandle和功能函数,功能函数是计时结束后执行的功能 在源文件中利用GetWorldTimerManager()实现定时器的开启(绑定功能函数)和清除. ...

  3. 一个可以让你有更多时间摸鱼的WPF控件(二)

    前言 上文介绍了如何通过一个Form自定义控件来简化数据的录入,并自动实现数据校验,自动布局排列等功能.本文继续介绍如何优化表格控件的使用,缩减代码量,实现工作效率的提升. 一.功能实现 上文中分析了 ...

  4. 【已解决】git reset命令误删本地文件怎么恢复

    执行 git  reflog 命令可以看到曾经执行过的操作,还有版本序号. 执行 git reset --hard HEAD@{[填那个序号]} 就可以恢复本地删除的文件了!

  5. 新版本NOI Linux发布,支持VSCode,Code::Blocks开发C++!!!,内附下载地址。

    注意VSCODE 虽然有C艹插件,但是在第一次编译的时候必须要有网络,否则用不了 我推荐还是用CODE::BLOCKS 作者10月8日补充 有些省份已经开始强制在NOIP的比赛里使用NOI Linux ...

  6. Java 包装类:原始数据类型与迭代器

    Java Iterator Iterator 接口提供了一种迭代集合的方法,即顺序访问集合中的每个元素.它支持 hasNext() 和 next() 方法,用于检查是否存在下一个元素以及获取下一个元素 ...

  7. Python 集合(Sets)1

    集合 集合用于在单个变量中存储多个项.集合是 Python 中的 4 种内置数据类型之一,用于存储数据集合,其他 3 种是列表(List).元组(Tuple)和字典(Dictionary),它们都具有 ...

  8. 踩坑指南:入门OpenTenBase之部署篇

    引言 OpenTenBase 企业级分布式HTAP开源数据库,具备高扩展性.商业数据库语法兼容.分布式HTAP引擎.多级容灾和多维度资源隔离等能力,成功应用在金融.医疗.航天等行业的核心业务系统. 这 ...

  9. openGauss数据库将磁盘表转换为MOT

    openGauss 数据库将磁盘表转换为 MOT 一.将磁盘表转换为 MOT 方法 磁盘表直接转换为 MOT 尚不能实现,这意味着尚不存在将基于磁盘的表转换为 MOT 的 ALTER TABLE 语句 ...

  10. 论文解读:Cellpose在细胞分割领域的应用

    细胞分割与Cellpose 基于显微镜图像的单细胞分析是目前生命科学领域的前沿和热点问题.细胞分割能对成像图片进行批量处理,将其形态.位置.RNA 表达和蛋白质表达等信息赋予识别出的每个细胞.比如: ...