若是常常用 Github,必定十分了解 Pull Request。
若是常常用 Gitlab,必定十分了解 Merge Request。
基於對 Github 和 Gitlab 的瞭解,我潛意識裏感知到 Pull Request 與 Merge Request 是有區別的。
Github 通常是公開庫,固然沒有人願意別人直接在本身的倉庫上面修改代碼。因此咱們若是要給別人的倉庫貢獻代碼,通常是要 fork 一個倉庫,在本身的倉庫改完後,給原倉庫提交 PR 請求,請求原倉庫主人把你的代碼拉(pull)回去。前端
下圖是通常的 Github 工做流程。
Gitlab 通常是私有庫,一個團隊維護一個倉庫,一般你們會新建本身的分支,開發完成後,請求合併回主幹分支。git
下圖是通常的 Gitlab 工做流程。
基於上面的認知,我起初以爲github
說實話,我本身都說服不了本身,上面的理解是正確的。畢竟redux
咱們來看看 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
若是我來起名的話,我應該會起這幾個名字:spa
不管如何也想不到 Pull Request,一個好名字仍是很是很是重要的。網上能搜到不少人問 Pull Request 是什麼意思,而後你們的解釋都差很少「請求別人拉你的代碼」。若是當時不用這個名字,你們一看就明白了,也不用問了。
又讓我想起了小白時期被 redux 中的名詞支配的恐懼, reducer
等新名字,看的我一愣一愣的。
就像我在 github 的簡介中寫的話同樣,一切都是紙老虎。
有時候人們很喜歡造一些名字很嚇人的名詞,讓人一聽這個名詞就以爲本身不可能學會,從而讓人望而卻步。可是其實這些名詞背後所表明的東西其實很簡單。