2024-10-09|閱讀時間 ‧ 約 0 分鐘

【Git】Pull Request vs Merge Request,搞懂合併分支的關係

前言

今天在解衝突的時候,同事提到了做merge指令時跟在Gitlab上提交merge request的時候是情況是相反的,我想他或許也沒探究過原因。

曾經我也很疑惑為什麼大家都是說發PR,但是越想越不對勁:

  1. 是給出去的意思
  2. PRP指的是pull,為什麼是用拉pull而不是用推push


完蛋了,中文英文同時崩潰...

從拉取的角度去思考

git merge <目標分支> 意思是從目標分支資訊過來,跟我所在的分支做結合,所以我必須要先切換到被併入資訊的分支上。


舉例:將新功能feature合併到主分支main上。


新資訊在feature,被併入的是main,因此要先切換當前分支到main,再下git merge feature把資訊從feature上拉過來。


PR = MR

恩沒錯,兩者是在做一樣的事,都是要提交合併分支的請求,只不過在GitHub上動作叫Pull Request,而在GitLab用詞叫Merge Request

不論是GitHub或是GitLab,主要環境分支都不該是隨意都可以進行異動的狀態,常見會區分成dev、sit、uat、prod等分支來區隔環境。當我們在自己的開發分支完成作業後,需要將新功能更新上去環境,就會提交合併請求。


確切一點來說,工作流程會是把本機新功能分支上的改動,先推到遠端新功能分支,再請求環境分支拉取我的改動過去進行更新合併,當然這時候就該有管理者來審核、檢視這次的更新適不適合併入環境中。


結語

希望看完的你,也能夠豁然開朗。





分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.