github发起PR(pull request)的教程以及常见操作
Posted 石头StoneWang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了github发起PR(pull request)的教程以及常见操作相关的知识,希望对你有一定的参考价值。
github发起PR(pull request)的教程以及常见操作
背景
有些企业可能不是使用gitlab自己搭建的仓库,而是使用现成的服务,比如GitHub企业版。下面是聊聊常见的一些操作和误区。我以个人版为例,因为我没有企业版。
一、发起PR或MR
PR一般是pull request,MR是merge request,是一样的意思。都是请求某个分支merge到目标的另外一个分支的操作。不一定要merge到master分支,merge到什么分支由你决定。
有一个非常容易掉入的误区!!!
发起PR,请求a分支merge到b分支,首先会有个对比的页面,即 b <- a
的页面,你觉得是下面哪个说法是对的?
- A:比对a相较于b的变化,相当于
git diff b a
- B:如果a要merge到b,需要做哪些改动
实时上就是B,有些人可能会理解为A。理解为A,就会出现一种错误认识,认为下面的页面是在比较两个分支的区别,所以谁先谁后是没有关系的,比如认为 “master <- develop 和 develop <- master 是一样的只不过是调换了比较顺序,但是顺序不同不影响,比如a比b多了一行代码,反过来就是b比a少了这行代码”(这是错的)
举个例子:a比b快,且如果a merge到 b上是fast forward的,那申请PR将 b合并到a就是没有任何变化的,申请PR将a合并到b就是fast forward的那部分变化。有时候 a <- b
和 b<-a
两个都是有变化的,很正常,不能fast forward就是得创建出新的commit来承载a和b各自的变化,所以谁融入谁都有变化
二、 如何切换分支|创建新分支|删除分支|改分支名|更改默认分支
这里看到的所有分支都是远程的(本地的分支肯定不会在这里啦,本地的没推到remote的话这里肯定看不见),如图。
下图,在这里进行切换分支;
输入不存在的名字就可以基于当前所在的分支派生出新分支;
有时分支太多,会出现滚动条;
如果需要更多的操作,点击View all branches
点击View all branches
后,如下图,在这个页面可以删除分支、重命名分支、发起PR
关于发起PR(New pull request
),比较奇怪的产品设计逻辑。
我的理解是点击a分支的New pull request
之后应该是申请别的分支合并到当前a分支(即出现 a <- other 的对比),可是发现展示的对比是 master <- a (比比较得到a分支若merge到master分支的改动)
更改默认分支,一般默认的是master,默认分支是不指定clone的分支时默认下载的代码分支;而且 New pull request
时默认对比的分支。
三、下载代码和权限
-
可以直接下载zip包
-
可以只下载部分的代码(比如你看到很多代码,只想下载某个部分,参考:https://blog.csdn.net/w8y56f/article/details/125827837)
-
下载的权限控制:不需要登录账号就可以下载(肯定了,因为是public的,因为私有的仓库你也搜不到自然也下载不了)
-
clone代码的协议:https 或 ssh(ssh其实就是git:// 开头的协议)—clone公仓的代码时要不要有账号密码或秘钥呀?这个平时没怎么注意,因为自己一直都是配置好GitHub的秘钥的,有知道的可以留言。
-
Releases:这里其实存放的是一些下载包,一些安装包
-
删除仓库:在Settings里删除
四、附录
付pull request的页面
以上是关于github发起PR(pull request)的教程以及常见操作的主要内容,如果未能解决你的问题,请参考以下文章
(转载)新手如何正确理解GitHub中“PR(pull request)”中的意思
如何在nodejs github probot中检索“pull_request”事件中的PR号
Github或Gitlab等申请PR或MR(pull request & merge request)的时候如果不能自动合并代码发生冲突了要怎么办