【转】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?
在 GitHub 上混久了,经常听到 Pull Request,在 GitLab 上混久了,则经常 提起 Merge Request ,然而它们之间有不同吗?为什么要用两个不同的名称?
要追溯这两个名称,需要追溯 GitHub 和 GitLab 引以为傲的 git 工作流。这也是本文参考链接中一定要附上 GitLab 工作流的重要原因。
众所周知 git 是一个分布式的版本管理系统,但为了团队成员之间能够高效地协作,必须有至少一个服务器用于给团队所有成员之间同步代码。而这一点又有点类似于集中式的版本管理。
对于项目的核心成员,集中式版本管理和分布式版本管理贡献代码的方式并没有多大差异(这里不要纠结个人使用层面的差异,只谈论为仓库贡献代码的方式)。但对于非项目核心成员来说,集中式的版本管理就非常痛苦了,因为他们找不到方式来提交自己的代码(请忽略低效的发邮件补丁吧……)。然而分布式版本管理则解决了这个问题:非项目核心成员可以克隆仓库,这样就得到了一个自己具有完全读写权限的仓库,贡献的代码可以完全同步到这个具有完全读写权限的仓库中。
为了让非核心成员提交的代码被核心成员接纳,非核心成员会向核心成员提出“申请(Request)”去自己的仓库指定分支中“拉取(pull)”最新的修改,这便是 Pull Request 的来源。
那么 Merge Request 又是什么呢?GitLab 对此的解释是——一样的,没有区别。Merge 只是在强调最后的那个动作“合并(Merge)”。
- GitHub、Bitbucket 和码云(Gitee.com)选择 Pull Request 作为这项功能的名称
- GitLab 和 Gitorious 选择 Merge Request 作为这项功能的名称
举个可能不那么贴切的例子:
出门买菜 = PR (强调开始的动作)
下楼买菜 = MR (强调后面的动作)
其实意思都是一样的
【转】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?的更多相关文章
- gitlab 一键 merge request(III)
已经有两位同学写过类似的 wiki 了,值得一看: gitlab一键提交request merge & assign 为啥我又来凑热闹呢?基于下面两个原由: 我的机子是 Win10,上面脚本的 ...
- GitLab的权限管理及Merge Request
GitLab的权限管理及Merge Request 原创尘世间一名迷途小码农 发布于2019-06-09 12:40:30 阅读数 2909 收藏 展开 目录 1.前言 2.角色权限 3.强制代码审 ...
- git学习------> 解决Gitlab 版本升级之后,发送 merge request 出现 http 500 的返回码错误
今天有同事在Gitlab上发送 Merge Request的时候,直接出现如下所示的界面,提示http 500,服务器内部出错. 一.错误描述 1.1 创建新的 Merge Request 1.2 填 ...
- github的pull request是指什么意思?有什么用处
github的pull request是指什么意思? 来看看某乎某位阿牛的理解,多么的简单粗暴! 我尝试用类比的方法来解释一下 pull reqeust.想想我们中学考试,老师改卷的场景吧.你做的试卷 ...
- git fork后提交pull request到原作者,别人的pull request我们要怎样merge融合
首先要记住,pull request 不是随便提交的,这是建立在你对原作者的项目有fork,并对项目中的代码有修改,并提交到了你的GitHub上,才能进行下面的操作. 若不知怎样fork项目,请看我的 ...
- 将已有项目提交到github/从github上pull到本地
去自己的工作分支$ git checkout work 工作.... 提交工作分支的修改$ git commit -a 回到主分支$ git checkout master 获取远程最新的修改,此时不 ...
- GitLab:解决Merge Request中Commits不更新的问题
最近在使用 GitLab 的 Merge Requests 功能进行 Code Review .操作流程是这样的: 1)开发人员A要给一个项目增加一个新功能,先在这个项目上创建一个 Git 分支. 2 ...
- Golang通过git clone beego框架报错 error: while accessing https://github.com/astaxie/beego/info/refs fatal: HTTP request failed package github.com/astaxie/beego: exit status 128
在Centos6.4尝试搭建beego框架,使用git命令clone时报错 # cd .; git clone https://github.com/astaxie/beego /www/projec ...
- [IDEA_4] IDEA 从 GitHub 上 pull 项目到本地
0. 说明 通过参考的链接我们已经知道了怎么安装配置 Git .GitHub ,如何使用 IDEA 将本地项目上传到 GitHub. 现在是学习怎么通过 IDEA 将项目从 GitHub pull ...
随机推荐
- Git提交规范
Commit message 的格式 每次提交,Commit message 都包括三个部分:Header,Body 和 Footer. <type>(<scope>): &l ...
- 【MPI环境配置】 vs2019配置MPI环境
MPI 即 Message-Passing Interface,提供了一系列并行编程的接口,为了在本机能够学习和使用并行编程,需要提前安装MPI; 配置环境: Microsoft Visual Stu ...
- C++ 数字分类
1012 数字分类 (20分) 输入格式: 每个输入包含 1 个测试用例.每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数.数字间 ...
- ReactiveCocoa操作方法-线程\时间
ReactiveCocoa操作方法-线程 deliverOn: 内容传递切换到制定线程中,副作用在原来线程中,把在创建信号时block中的代码称之为副作用. subscribeOn: 内容传递和副作用 ...
- SQL优化原理
SQL优化过程: 1,捕获高负荷的SQL语句-->2得到SQL语句的执行计划和统计信息--->3分析SQL语句的执行计划和统计信息--->4采取措施,对SQL语句进行调整.1找出高负 ...
- 【C/C++】链表/ListNode/数据结构
vector的操作 添加元素: 向尾部添加一个元素 vector<int> a; a.push_back(1); 向尾部添加多个元素 -向尾部添加x个同样的元素: a.insert(a.e ...
- ExecutorService 线程池详解
1.什么是ExecutorService,为什么要使用线程池? 许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务,每当一个请求到达就创建一个新线程,然后在新线程中为请求服务,但是频繁创建新 ...
- 【Spark】【RDD】从内存(集合)创建RDD
val list = List(1,2,3) var rdd = sc.parallelize(list) rdd.partitions.size 通过调用SparkContext的paralleli ...
- Declarative Pipeline 基础语法
Declarative Pipeline(声明式)核心概念 核心概念用来组织pipeline的运行流程 1.pipeline :声明其内容为一个声明式的pipeline脚本 2.agent:执行节点( ...
- epx中设置断掉调试
以前总听师傅们说,做pwn题,多调试,多调试. 师傅都说用gdb,但是我刚接触linux程序调试的时候用的是pwndbg,后来就用顺手了.但是调试一些简单程序还好,直接用pwndbg打开.但是这年头简 ...