Gitlab合并代碼并解決沖突的問題
有兩個遠(yuǎn)程分支,dev-jwh分支和默認(rèn)的main分支
本地開發(fā)的代碼已上傳到遠(yuǎn)程分支dev-jwh上
現(xiàn)在將dev-jwh遠(yuǎn)程分支的代碼同步到遠(yuǎn)程分main上
在gitlab同步兩個遠(yuǎn)程分支的代碼時,有兩種情況:
- 一種是提交后在界面出現(xiàn)提示
Create merge request - 一種是沒有提示,沒提示時則
New merge request
1. Create merge request
上面我們將dev-jwh本地代碼同步到遠(yuǎn)程dev-jwh分支上了,此時遠(yuǎn)程的main分支還沒有同步
將遠(yuǎn)程分支dev-jwh上的代碼同步到遠(yuǎn)程分支main上
可以在Gitlab平臺上操作
在提交代碼到遠(yuǎn)程倉庫之后,gitlab平臺的Merge request部分就會收到提交信息
項目左側(cè)欄Merge requests
1.1 創(chuàng)建合并請求
選擇Create merge request進(jìn)行同步操作
當(dāng)然,如果這里沒有上圖中的提示(默認(rèn)main分支外的分支提交會以請求的形式出現(xiàn)在上圖中的位置提示)
可到下一小節(jié)<2. New merge request>進(jìn)行操作

1.2 合并請求標(biāo)題和描述填寫
默認(rèn)內(nèi)容如下
可在Title填寫請求的標(biāo)題
在Description填寫請求描述
當(dāng)然這里可以默認(rèn)即可

1.3 取消勾選
注意,
Merge options中的第一項Delete source branch when merge request is accepted默認(rèn)是勾選的
一定要取消勾選
然后點擊Create merge request創(chuàng)建請求,從dev-jwh同步到main

1.4 授權(quán)并合并
然后依次選擇Approve、Merge即可(其余內(nèi)容不用填寫)點擊Merge后即可實現(xiàn)同步代碼到遠(yuǎn)程main分支

1.5 合并完成
執(zhí)行后如果代碼沒沖突則不需要解決,代碼同步完成,
如下圖:

1.6 合并未完成-需解決沖突
如果有沖突則會在界面出現(xiàn)Resolve conflicts
此時需要點擊Resolve conflicts解決沖突,解決沖突可跳轉(zhuǎn)到第3小節(jié):3. 沖突解決

2. New merge request
2.1 創(chuàng)建合并請求
當(dāng)界面沒有提交的合并請求時,可以在右上角新建合并請求,如下圖,選擇New merge request進(jìn)行同步操作

2.2 分支選擇
選擇要合并的分支,左邊是當(dāng)前分支,右邊是要合并到的分支默認(rèn)main

左邊我們選擇我們剛剛提交的dev-jwh分支,然后點Compare branches and continue對比兩個分支然后繼續(xù)

2.3 合并信息填寫
這里可以對這次合并做一些內(nèi)容設(shè)置,如給這次修改起個名字,然后寫點描述

2.4 取消勾選
然后在Merge options中取消勾選Delete選項,默認(rèn)是勾選的,如果不取消勾選,則合并后我們的分支dev-jwh則會被刪除
取消勾選后,點Create merge request創(chuàng)建合并

2.5 授權(quán)并合并
這里我們先授權(quán)點Approve,也可以之前就點,我們這里點也沒問題

2.6 沖突解決
然后可以看到有Resolve conflicts表示有沖突需要解決,點它就行

2.7 代碼選擇
這里可以看到有兩部分,一部分是Use ours表示dev-jwh分支,一部分是Use theirs表示main分支
選擇用哪個分支的代碼進(jìn)行覆蓋,我們使用自己的dev-jwh
點Use ours
然后點Commit to source branch將代碼合并任務(wù)提交

2.8 再次合并
然后會跳回到merge界面,再次點擊Merge即可,注意,這里再確認(rèn)一下Delete source branch選項是未勾選的

2.9 合并成功
Merge之后如果沒問題,界面如下表示合并成功

3. 沖突解決
3.1 制造沖突
我在兩個遠(yuǎn)程分支的某個代碼片段改成不同的內(nèi)容
- dev-jwh分支的內(nèi)容是
列表數(shù)量 - main分支的內(nèi)容分是
列表大小
當(dāng)兩個分支的代碼沖突時,解決如下
3.2 合并及解決沖突
有沖突時,Merge按鈕是灰色的,此時需要先解決沖突再Merge
點擊Resolve conflicts

然后在解決沖突界面選用Use ours自己的代碼覆蓋別人的,還是選擇Use theirs別人的覆蓋自己的代碼

這里我選擇Use ours,即將注釋內(nèi)容為列表數(shù)量的內(nèi)容保留

選了用自己的之后提交信息到資源分支
Use ours–>Commit to source branch
解決沖突后返回merge界面,別忘了點Approve授權(quán)通過

刷新界面,再次點擊Merge

3.3 合并成功
合并成功后的界面如下

3.4 查看合并結(jié)果
查看遠(yuǎn)程倉庫main分支的代碼,已更新為自己的內(nèi)容(獲取列表數(shù)量),沖突解決

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Jenkins集成Gitlab實現(xiàn)自動化部署的全過程記錄
因為中型公司不可能配置運維開發(fā),而開發(fā)只管開發(fā)的,所以運維只能是通過使用開源工具的方式來搭建自動化部署系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于Jenkins集成Gitlab實現(xiàn)自動化部署的相關(guān)資料,需要的朋友可以參考下2022-04-04
git遠(yuǎn)程操作異常:correct access rights問題及解決
這篇文章主要介紹了git遠(yuǎn)程操作異常:correct access rights問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
Git報錯:fatal:refusing?to?merge?unrelated?histories問題解決過程
本文作者分享了因誤刪.git文件夾而引發(fā)的Git報錯解決過程,作者嘗試重新初始化倉庫并拉取代碼,但遭到了Git的拒絕,作者認(rèn)為正確的做法是重新克隆代碼庫,以保留完整的提交歷史記錄,本文提醒我們要重視Git的歷史記錄機(jī)制及其重要性2026-04-04
解決HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截斷的問題
這篇文章主要介紹了HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截斷的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
在IDEA(2020.2)中配置Git及使用Git的圖文詳解
這篇文章主要介紹了在IDEA(2020.2)中配置Git及使用Git的圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
解決vs?code通過remote-ssh遠(yuǎn)程到ubuntu頻繁掉線問題
這篇文章主要介紹了vs?code通過remote-ssh遠(yuǎn)程到ubuntu頻繁掉線問題解決方法,這個解決方案只要用自己安裝的Git替換掉windows本身的Git工具,需要的朋友可以參考下2022-09-09

