《GitHub入门与实践》学习笔记(windows)-第6章 尝试Pull Request

一、Pull Request 的概要

1.什么是 Pull Request

  • Pull Request 是自己修改源代码后,请求对方仓库采纳该修改时采取的一种行为。
  • 在 GitHub 上发送 Pull Request 后,接收方的仓库会创建一个附带源代码的 Issue,我们在这个 Issue 中记录详细内容。这就是 Pull Request。
  • Pull Request 在网络上也常常被简称为 PR。

二、发送 Pull Request 前的准备——操作开始

1.整体框架

在这里插入图片描述

2.需要操作的仓库源代码

(1)源代码:https://ituring.github.io/first-pr/
(2)该网站的源代码已经在 GitHub 上公开 ,通过 GitHub 的 GitHub Pages 功能发布:https://github.com/ituring/first-pr

3.首先Fork仓库

各位请访问仓库页面,点击 Fork 按钮创建自己的仓库(图 6.2)。
在这里插入图片描述

4.把fork后的仓库clone下来

在这里插入图片描述
说明:

  • first-pr 目录下会生成 Git 仓库。
  • 这个仓库与我们 GitHub 账户下的first-pr 仓库状态相同。现在只要在这个仓库中修改源代码进行 push,GitHub 账户中的仓库就会被修改。

5.创建一个特性分支,并在特性分支中操作

(1)为何要在特性分支中进行作业??

  • 各位请养成创建特性分支后再修改代码的好习惯。
  • 在 GitHub 上发送 Pull Request 时,一般都是发送特性分支。
  • 这样一来, Pull Request 就拥有了更明确的特性(主题)。让对方了解自己修改代码的意图,有助于提高代码审查的效率。

(2)查看当前分支
在这里插入图片描述
(3)创建特性分支
在这里插入图片描述
在这里插入图片描述
注意:可以看出Github上的远程仓库的分支名叫:origin,所以后面才使用git push -u origin work

(4)添加代码
在这里插入图片描述
(5)提交修改
这里用到了:

  • git diff命令,用来查看修改是否已经正确进行
  • git add 和git commit -m这俩指令
    在这里插入图片描述
    在这里插入图片描述

(6)将特性分支push到Github端的远程仓库

注:当作是再次开发的过程

在这里插入图片描述

三、发送Pull Request(在Github上操作)——操作结束

(1)参考图 6.3,登录 GitHub 并切换至 work 分支。
(2)点击分支名左侧的绿色按钮,会跳转至查看分支间差别的页面(图 6.4)。

在这里插入图片描述
(3)确认没有问题后,点击 Send pull request 按钮。这样一来, Pull Request 的目标仓库中就会新建 Pull Request 和 Issue,同时该仓库的管理者会接到通知。(现在github改成了:creat pull request)

(4)点击自己发送的 Pull Request 后会进入如图 6.6 的页面,管理者对 Pull Request 的评论会发到这里。

注:指的是https://github.com/ituring/first-pr的pull request,fork的原地址去查看
在这里插入图片描述

四、让 Pull Request 更加有效的方法

1. 在开发过程中发送 Pull Request 进行讨论

(1)只要在想发起讨论时发送 Pull Request即可,不必等代码最终完成。即便某个功能尚在开发之中,只要在 Pull Request 中附带一段简单代码让大家有个大体印象,就能获取不少反馈。

(2)另外还有一件事要记住,就是千万不要在 Pull Request 中添加无关的修改。

2.不进行 Fork 直接从分支发送 Pull Request

(1)一般说来,在 GitHub 上修改对方的代码时,需要先将仓库 Fork 到

本地,然后再修改代码,发送 Pull Request。

(2)如果用户对该仓库有编辑权限,则可以直接创建分支,从分支发送 Pull Request。
这样,成员在有需要时就可以创建自己的分支,然后直接向 master分支等发送 Pull Request。

五、如何让仓库保持最新分支状态:git fetch

注:fetch与pull的不同

  • fetch的使用,是因为是fork的仓库;而pull不是fork的仓库哦。
  • 这俩都是更新分支状态,而不是仓库里面的文件!
  • 具体表现如下:pull是使得自己的本地仓库和自己的远程仓库的分支状态保持一致,而fetch是让自己的fork后的仓库与别人的原仓库的分支状态保持一致。
    在这里插入图片描述

(1)Fork 或 clone 来的仓库,一旦放置不管就会离最新的源代码越来越远。

(2)通常来说 clone 来的仓库实际上与原仓库并没有任何关系。所以我们需要将原仓库设置为远程仓库,从该仓库获取(fetch)数据与本地仓库进行合并(merge),让本地仓库的源代码保持最新状态(图 6.8)

在这里插入图片描述

1.首先fork原仓库,然后到自己的仓库中进行clone

注意:原仓库的地址是:git://github.com/octocat/Spoon-Knife.git
fork后的地址是: git@github.com:hirocastest/Spoon-Knife.git

在这里插入图片描述

2.给原仓库设置名称

在这里插入图片描述
今后,我们的这个仓库将以 upstream 作为原仓库的标识符。

3.获取最新数据

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢打篮球的普通人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值