Pull Request

Posted xyyhcn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pull Request相关的知识,希望对你有一定的参考价值。

● 什么是 Pull Request

首先我们来理解什么是 Pull Request A 。Pull Request 是自己修改源代码后,请求对方仓库采纳该修改时采取的一种行为。

技术图片

 

● Fork


各位请访问仓库页面,点击 Fork 按钮创建自己的仓库(图 6.2)。
新建的仓库名为“自己的账户名 /first-pr”。在这里我们命名为
hirocastest。

● clone

clone 仓库所需的访问信息显示在右侧的中央部分,让我们将它复制下来,把这个仓库 clone 到当前的开发环境中。
$ git clone git@github.com:hirocastest/first-pr.git
Cloning into ‘first-pr‘...
remote: Counting objects: 14, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 14 (delta 2), reused 0 (delta 0)
Receiving objects: 100% (14/14), 24.05 KiB, done.
Resolving deltas: 100% (2/2), done.
$ cd first-pr

 

● branch 

为何要在特性分支中进行作业
当前 Git 的主流开发模式都会使用特性分支。关于特性分支的详细
知识,我们已经在第 4 章讲解过了。
各位请养成创建特性分支后再修改代码的好习惯。在 GitHub 上发
送 Pull Request 时,一般都是发送特性分支。这样一来,Pull Request 就
拥有了更明确的特性(主题)。让对方了解自己修改代码的意图,有助
于提高代码审查的效率。

确认分支


我们来查看一下 clone 出的仓库的分支。
$ git branch -a
* gh-pages ←当前分支
remotes/origin/HEAD -> origin/gh-pages
remotes/origin/gh-pages

创建特性分支

我们创建一个名为 work 的分支,用来发送 Pull Request。这个 work
分支就是这次的特性分支。现在创建 work 分支并自动切换。
$ git checkout -b work gh-pages
Switched to a new branch ‘work‘

确认是否切换到了 work 分支下。

$ git branch -a
gh-pages
* work ←当前分支
remotes/origin/HEAD -> origin/gh-pages
remotes/origin/gh-pages

● 添加代码


用编辑器打开 index.html 文件,以 HTML 形式添加感想。
省略
<p>请写明这是对本书内容的实践或描述对本书的感想并发送Pull Request。</p>
↓追加的行
<p class="impression"> 这本书读着很有趣。(@HIROCASTER)</p>
省略
请自由添加感想并用 p 标签(Tag)括起,然后关闭编辑器。

● 提交修改


用 git diff命令查看修改是否已经正确进行。
$ git diff
diff --git a/index.html b/index.html
index f2034b3..91b8ecb 100644
--- a/index.html
+++ b/index.html
@@ -39,6 +39,8 @@
<p>请写明这是对本书内容的实践或描述对本书的感想并发送Pull Request。</p>
+<p class="impression"> 这本书读着很有趣。(@HIROCASTER)</p>

● 创建远程分支

要从 GitHub 发送 Pull Request,GitHub 端的仓库中必须有一个包
含了修改后代码的分支。我们现在就来创建本地 work 分支的相应远程
分支。

$ git push origin work
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 353 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
To git@github.com:hirocastest/first-pr.git
* [new branch] work -> work

请打开 GitHub 的“用户名 /first-pr”页,确认 work 分支是否被创
建,以及是否已包含我们添加的代码。

 

登录 GitHub 并切换至 work 分支。

点击分支名左侧的
绿色按钮,会跳转至查看分支间差别的页面(图 6.4)。请在这里通过差

别查看刚刚进行的更改是否正确。这里显示的东西就是我们本次 Pull
Request 中包含的提交

 

确认想要发送的 Pull Request 的内容差别无误后,请点击 Create Pull Request。

随后显示的表单用于填写请求对方采纳的评论(图 6.5)。现在

让我们在评论栏中简明扼要地描述本次进行 Pull Request 的理由。

● 明确标出“正在开发过程中

”为防止开发到一半的 Pull Request 被误合并,一般都会像图 6.7 中所
示的那样在标题前加上“[WIP]”字样。WIP 是 Work In Progress 的简
写,表示仍在开发过程中。等所有功能都实现之后,再消去这个前缀。

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

这个方法也值得在 GitHub 上进行开发的团队借鉴。
一般说来,在 GitHub 上修改对方的代码时,需要先将仓库 Fork 到
本地,然后再修改代码,发送 Pull Request。但是,如果用户对该仓库有
编辑权限,则可以直接创建分支,从分支发送 Pull Request。利用这一设
计,团队开发时不妨为每一名成员赋予编辑权限,免去 Fork 仓库的麻
烦。这样,成员在有需要时就可以创建自己的分支,然后直接向 master
分支等发送 Pull Request。
其实,这一方法已经被 GitHub 实际运用到开发之中
A 。关于这一开
发流程的具体内容将在第 9 章详细说明。

 

以上是关于Pull Request的主要内容,如果未能解决你的问题,请参考以下文章

drf的五大模块

OkHttp 在 Android 中怎么发送异步请求

git 要commit之前先pull, 这样做法合理吗?

git pull之前要先commit

docker pull不下来镜像是啥原因

(1)get、give、put、pull的用法及区别 (2)put、pull、place、lay的用法及区别