今天在解衝突的時候,同事提到了做merge
指令時跟在Gitlab
上提交merge request
的時候是情況是相反的,我想他或許也沒探究過原因。
曾經我也很疑惑為什麼大家都是說發PR
,但是越想越不對勁:
發
是給出去的意思PR
的P
指的是pull
,為什麼是用拉pull
而不是用推push
?
完蛋了,中文英文同時崩潰...
git merge <目標分支>
意思是從目標分支拉資訊過來,跟我所在的分支做結合,所以我必須要先切換到被併入資訊的分支上。
feature
合併到主分支main
上。
新資訊在feature
,被併入的是main
,因此要先切換當前分支到main
,再下git merge feature
把資訊從feature
上拉過來。
恩沒錯,兩者是在做一樣的事,都是要提交合併分支的請求,只不過在GitHub
上動作叫Pull Request
,而在GitLab
用詞叫Merge Request
。
不論是GitHub
或是GitLab
,主要環境分支都不該是隨意都可以進行異動的狀態,常見會區分成dev、sit、uat、prod
等分支來區隔環境。當我們在自己的開發分支完成作業後,需要將新功能更新上去環境,就會提交合併請求。
確切一點來說,工作流程會是把本機新功能分支上的改動,先推到遠端新功能分支,再請求環境分支拉取我的改動過去進行更新合併,當然這時候就該有管理者來審核、檢視這次的更新適不適合併入環境中。
希望看完的你,也能夠豁然開朗。