Git回退(Revert)操作后無法重新合并的問題及解決
問題背景
公司使用碼云企業(yè)版作為代碼托管平臺,采用master/dev分支分類進行代碼管理,matser分支為保護分支,只能審核后在網(wǎng)頁端提交合并(請求評審)。
此時dev代碼合并到master后發(fā)現(xiàn)有問題需要回退上次一合并,此時只能在請求評審處點擊回退按鈕,回退后master并沒有改動,而是新產(chǎn)生了一個revert_xxxx的新分支。
現(xiàn)有問題
新產(chǎn)生的revert_xxxxx分支是什么分支,和以前的master/dev有什么關(guān)系?
回退后重新合并時發(fā)現(xiàn)并無改動,如何才能重新合并?
問題解答
新產(chǎn)生的分支(revert_xxxxx)為master分支回退后的新分支,其中包括revert操作,因為master為保護分支,所以此時master分支上并無改動。也就是說:回退操作不會直接在master上執(zhí)行!
此時想將dev重新合并到master,發(fā)現(xiàn)無法合并,因為git的revert并不是真正的回退操作,而是將上次的合并內(nèi)容刪除掉(反向提交),也就是說相當于上次合并的內(nèi)容依然存在,revert操作只是將上次合并內(nèi)容進行刪除重新提交(反向提交)。
問題解決
直接將新分支(revert_xxxxx)合并到master,master就存在回退記錄了,然后直接將revert_xxxxx分支刪除即可。
現(xiàn)在有dev/master雙分支,master上已回退但是無法重新合并,此時需要將master合并到dev,讓dev上也有這個退回記錄,然后將dev再次退回(將revert記錄revert,相當于重新提交),此時git就會在反向提交的記錄上反向提交,這次就會把revert刪除的內(nèi)容重新提交回來,此時會生成新的操作記錄,再次合并master即可。
總結(jié)
碼云revert后并不會產(chǎn)生改動,而是產(chǎn)生新分支,合并即可。
revert操作相當于反向提交改動,所以即使revert后master分支代碼也比dev要新,所以無法提交,此時將master合并dev,dev分支revert上次revert即可!
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
編寫高質(zhì)量代碼的30條黃金守則(首選隱式類型轉(zhuǎn)換)
這篇文章主要介紹了編寫高質(zhì)量代碼的30條黃金守則(首選隱式類型轉(zhuǎn)換),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
GitLab使用外部提供的Redis緩存數(shù)據(jù)庫的方法詳解
這篇文章主要介紹了GitLab: 如何使用外部提供的Redis緩存數(shù)據(jù)庫,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
vscode使用markdown無法預覽網(wǎng)絡(luò)圖片的解決方法
本文主要介紹了vscode使用markdown無法預覽網(wǎng)絡(luò)圖片的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-01-01
網(wǎng)絡(luò)編程之get與post的區(qū)別與聯(lián)系
這里來說說get與post的區(qū)別與聯(lián)系,對這方面不懂的鵬喲可以參考下。2011-04-04

