【GitHub】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?
GitHub 的 Pull Request 和 GitLab 的 Merge Request 有區(qū)別嗎?
在 GitHub 上混久了,對(duì) Pull Request 就……
在 GitLab 上混久了,對(duì) Merge Request 就……
然而它們之間有不同嗎?為什么要用兩個(gè)不同的名稱(chēng)?
要追溯這兩個(gè)名稱(chēng),需要追溯 GitHub 和 GitLab 引以為傲的 git 工作流。這也是本文參考鏈接中一定要附上 GitLab 工作流的重要原因。
眾所周知 git 是一個(gè)分布式的版本管理系統(tǒng),但為了團(tuán)隊(duì)成員之間能夠高效地協(xié)作,必須有至少一個(gè)服務(wù)器用于給團(tuán)隊(duì)所有成員之間同步代碼。而這一點(diǎn)又有點(diǎn)類(lèi)似于集中式的版本管理。
對(duì)于項(xiàng)目的核心成員,集中式版本管理和分布式版本管理貢獻(xiàn)代碼的方式并沒(méi)有多大差異(這里不要糾結(jié)個(gè)人使用層面的差異,只談?wù)摓閭}(cāng)庫(kù)貢獻(xiàn)代碼的方式)。但對(duì)于非項(xiàng)目核心成員來(lái)說(shuō),集中式的版本管理就非常痛苦了,因?yàn)樗麄冋也坏椒绞絹?lái)提交自己的代碼(請(qǐng)忽略低效的發(fā)郵件補(bǔ)丁吧……)。然而分布式版本管理則解決了這個(gè)問(wèn)題:非項(xiàng)目核心成員可以克隆倉(cāng)庫(kù),這樣就得到了一個(gè)自己具有完全讀寫(xiě)權(quán)限的倉(cāng)庫(kù),貢獻(xiàn)的代碼可以完全同步到這個(gè)具有完全讀寫(xiě)權(quán)限的倉(cāng)庫(kù)中。
為了讓非核心成員提交的代碼被核心成員接納,非核心成員會(huì)向核心成員提出“申請(qǐng)(Request)”去自己的倉(cāng)庫(kù)指定分支中“拉取(pull)”最新的修改,這便是 Pull Request 的來(lái)源。
那么 Merge Request 又是什么呢?GitLab 對(duì)此的解釋是——一樣的,沒(méi)有區(qū)別。Merge 只是在強(qiáng)調(diào)最后的那個(gè)動(dòng)作“合并(Merge)”。
GitHub、Bitbucket 和碼云(Gitee.com)選擇 Pull Request 作為這項(xiàng)功能的名稱(chēng)。
GitLab 和 Gitorious 選擇 Merge Request 作為這項(xiàng)功能的名稱(chēng)。
參考:StackOverflow - Pull request vs Merge request
總結(jié)
以上是生活随笔為你收集整理的【GitHub】GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【SpringBoot】SpringBo
- 下一篇: 【GitHub】如何合并分支?