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)文章
將Sublime?Text?設(shè)置成中文版的完整教程
這篇文章主要介紹了將Sublime?Text?設(shè)置成中文版的完整教程,需要自己添加之后才會有這一項,對Sublime?Text中文版設(shè)置方法感興趣的朋友一起看看吧2022-01-01vscode配置leetcode插件并解決無法登錄問題(圖文詳解)
這篇文章主要介紹了vscode配置leetcode插件并解決無法登錄問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Elasticsearch?在地理信息空間索引的探索和演進問題分析
本文梳理了Elasticsearch對于數(shù)值索引實現(xiàn)方案的升級和優(yōu)化思考,從2015年至今數(shù)值索引的方案經(jīng)歷了多個版本的迭代,實現(xiàn)思路從最初的字符串模擬到KD-Tree,技術(shù)越來越復(fù)雜,能力越來越強大,應(yīng)用場景也越來越豐富,感興趣的朋友跟隨小編一起看看吧2022-06-06