Git request-pull 和 Github pull request
目录
简短的介绍
request-pull
和 Pull Request
的名称如此相似,但是他们的功能是完全不同的。
request-pull
是git的命令,它用于生成发送到邮件列表的待处理的更改的摘要。默认情况下,GitHub没有集成这个功能。
Pull Request
是GitHub特有的一项功能(简称PR)。它用于向Github托管的某一项目中的某一分支提出合并请求。项目管理者则可以在github的web界面上合并来自不同分支的代码,解决合并冲突,做代码审查或对代码进行评论。
Git request-pull
使用目的
Generates a summary of pending changes
生成待处理的更改的摘要
使用方法
1 | git request-pull [-p] <start> <url> [<end>] |
一个例子
新增修改是基于从远端pull
下来的master
分支上的,为此建立了一个分支叫add-android-cours
, 首先把自己的分支push
到自己的仓库里
1 | git push https://github.com/JinhaiZ/TB-F2B-205.git |
运行git request-pull
命令
1 | git request-pull master https://github.com/JinhaiZ/TB-F2B-205.git add-android-cours |
它会根据远端master分支和刚刚push到仓库里的add-android-cours
分支的不同做一个摘要。你可以选择把这份摘要email给远端仓库的管理者,这样,管理者可以从这份摘要中快速看出你想对master分支做出什么更改
生成摘要如下所示
1 | The following changes since commit 5a992617e38665e73ca5ec5e5c10b78373c88938: |
Github Pull Request
使用目的
“Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。”
使用方法
使用Github web界面
以下借用阮一峰老师的讲解
- 第一步,你需要把别人在Github上的项目,fork到你自己的仓库
- 第二步,在你仓库的修改后的分支上,按下"New pull request"按钮。
这时,会进入一个新页面,有Base 和 Head 两个选项。Base 是你希望提交变更的目标,Head 是目前包含你的变更的那个分支或仓库。 - 第三步,填写说明,帮助别人理解你的提交,然后按下"create pull request"按钮即可。PR 创建后,管理者就要决定是否接受该 PR。
使用Command line
首先安装Hub,以下步骤参考Hub官方指南
-
第一步,把别人在Github上的项目克隆到本地
1
`hub clone https://github.com/SOME_ONE/xxx.git`
-
第二步,创建分支,并在分支上进行修改
1
2git checkout -b my-feature-branch
git commit -m "add new feature X" -
第三步,把本地项目fork到Github上
1
2
3hub fork
→ (forking repo on GitHub...)
→ git remote add YOUR_USER git://github.com/YOUR_USER/xxx.git -
第四步,把分支
push
到新远端(自己fork的远端)1
git push YOUR_USER feature
-
第五步,为自己的分支创建一个PR
1
2git pull-request
→ (opens a text editor for your pull request message)
参考
- git docs: git-request-pull
- Pull Request 的命令行管理
- git request-pull: how to create a (github) pull request on the command line?