Pull Request 與 Merge Request 的區別

這篇文章只爲說明一個問題:「Pull Request 與 Merge Request 有什麼區別?」

在個人想象中,有一雙滑板鞋~很差意思,跑偏了。

在個人想象中,它倆確定是不同的,而且大部分人的想法應該和我是同樣的,我先來講說個人想法。

自我 YY

若是常常用 Github,必定十分了解 Pull Request。
若是常常用 Gitlab,必定十分了解 Merge Request。
基於對 Github 和 Gitlab 的瞭解,我潛意識裏感知到 Pull Request 與 Merge Request 是有區別的。

Github 通常是公開庫,固然沒有人願意別人直接在本身的倉庫上面修改代碼。因此咱們若是要給別人的倉庫貢獻代碼,通常是要 fork 一個倉庫,在本身的倉庫改完後,給原倉庫提交 PR 請求,請求原倉庫主人把你的代碼拉(pull)回去前端


下圖是通常的 Github 工做流程。
image.png

Gitlab 通常是私有庫,一個團隊維護一個倉庫,一般你們會新建本身的分支,開發完成後,請求合併回主幹分支。git


下圖是通常的 Gitlab 工做流程。
image.png

基於上面的認知,我起初以爲github

  • Github 這種須要 fork 倉庫的模式,應該叫 Pull Requset,請求目標倉庫來拉你的代碼。
    「我改了大家的代碼,大家拉回去看看吧 !」
  • Gitlab 這種純分支模式,應該叫 Merge Request,是本身請求把代碼合併進主幹。
    「請求合併代碼!」


說實話,我本身都說服不了本身,上面的理解是正確的。畢竟redux

  • 在 Github 上也能夠玩分支模式,提交合並請求一樣用 Pull Request。
  • 在 Gitlab 上也能夠玩 fork 模式,提交合並請求仍是 Merge Request。

真實狀況

咱們來看看 gitlab 官方是怎麼說的:bash

Merge or pull requests are created in a git management application and ask an assigned person to merge two branches. Tools such as GitHub and Bitbucket choose the name pull request since the first manual action would be to pull the feature branch. Tools such as GitLab and Gitorious choose the name merge request since that is the final action that is requested of the assignee.markdown

大概意思就是 Merge Request 和 Pull Request 是同一個東西,僅僅只是名字不同。
通常咱們執行分支合併,須要執行下面兩個命令:app

git pull // 拉回須要合併的分支
git merge // 合併進目標分支
複製代碼

Github 選擇了第一個命令來命名,叫 Pull Request。
Gitlab 選擇了最後一個命令來命名,叫 Merge Request。
這個理由是 Gitlab 官方給的,我以爲仍是可信的。因此咱們的結論就是**「Pull Request 和 Merge Request」是一個東西**。 oop

吐槽

Pull Request 這個詞起的真很差!我想起來我剛開始用 Github 的時候,根本看不懂 Pull Request 是幹啥的。gitlab

  • Pull Request 是否是請求別人容許我拉他們的代碼?若是我不請求,就不能拉別人的代碼?
  • 提交代碼是否是叫 Push Request 會更好?表示我想給別人的倉庫 Push 代碼。

若是我來起名的話,我應該會起這幾個名字:spa

  • Merge Request 請求把代碼合併進去
  • Push Request 請求把代碼推動去
  • Check In Requset 發起代碼准入檢查
  • ......

不管如何也想不到 Pull Request,一個好名字仍是很是很是重要的。網上能搜到不少人問 Pull Request 是什麼意思,而後你們的解釋都差很少「請求別人拉你的代碼」。若是當時不用這個名字,你們一看就明白了,也不用問了。

image.png


又讓我想起了小白時期被 redux 中的名詞支配的恐懼, reducer 等新名字,看的我一愣一愣的。
就像我在 github 的簡介中寫的話同樣,一切都是紙老虎。

有時候人們很喜歡造一些名字很嚇人的名詞,讓人一聽這個名詞就以爲本身不可能學會,從而讓人望而卻步。可是其實這些名詞背後所表明的東西其實很簡單。


你有沒有被奇奇怪怪的名字支配的恐懼呢?
若是是你,你會給 Pull Request 取什麼名字呢?
歡迎留言互動,讓你們看到你的想法。

❤️感謝你們

關注公衆號「前端技術磚家」,拉你進交流羣,你們一塊兒共同交流和進步。

相關文章
相關標籤/搜索