前言
第一次接觸項目發(fā)版的工作,記錄一下解決版本沖突合并問題的心得。
適用場景:分布式項目,多人使用自己分支開發(fā),最后合并自己的代碼分支給主分支。
話不多說,直接看圖
一、分支如何合并?
1.全部拉下來(這個拉取是全部拉取,既保證自己的分支最新,同時也把遠(yuǎn)端的分支都拉到最新),如果沒有圖一的拉取圖標(biāo),這是因為自己沒設(shè)置顯示,可以參考圖二的拉取方法。
圖一 圖二
2.注意自己是不是dev分支(也就是自己項目的主分支,別的分支要合到的分支),如果不是需要切換為dev分支
(右下角有圖標(biāo),可以看此時屬于哪個分支,下圖為切換分支方法英文界面的名字應(yīng)該是checkout)
3.合并沖突(某個模塊開發(fā)完,該模塊的開發(fā)者將自己的開發(fā)分支推送給主分支,此時合并時需要注意代碼沖突)
之后界面會顯示沖突文件,可以點開看哪里沖突,解決沖突第一步,點擊左上角的All,合并沒有沖突的地方,之后開代碼確定dev分支和新提交的誰的代碼對(一般都是新提交的對,不過有時候拿不準(zhǔn)可以問提交代碼的人),解決完沖突后記得推送,推送給dev就可以了
二、為什么出現(xiàn)沖突?
一般來說,每個開發(fā)者推送代碼前都必須拉取最新的代碼,自己在本地解決沖突后再進(jìn)行推送(注:拉取前必須先提交,也就是commit,不然可能造成自己的代碼被別人的代碼沖掉),相當(dāng)于大家在一個分支開發(fā),按照這個流程不會出現(xiàn)什么沖突。
但是分布式開發(fā)并且項目已經(jīng)上生產(chǎn)時將改變此流程,每個開發(fā)者從生產(chǎn)環(huán)境master拉取創(chuàng)建一個最新代碼分支例如master_zhangsan_2021_11_01分支,之后在這個分支上進(jìn)行開發(fā),當(dāng)開發(fā)完后需要將其合并到sit測試環(huán)境,此時相當(dāng)于master_zhangsan_2021_11_01分支的拉取是基于master分支上的,而合并操作則是在sit分支,而sit測試分支必定比master分支的代碼內(nèi)容多(只有版本迭代,也就是把sit分支合并到master時,二者才會相同),這就導(dǎo)致代碼可能會有沖突,因為自己寫的地方,別人也可能在別人自己的分支的這個位置寫代碼了,這將出現(xiàn)沖突問題,尤其是復(fù)用高多人開發(fā)多的模塊。
三、如何避免?
1.項目管理者讓單人負(fù)責(zé)單模塊,盡量不要讓多人同時間段對一個模塊一個頁面操作。
2.如果要開發(fā)的內(nèi)容很多時間很緊,盡量讓生產(chǎn)發(fā)版頻繁一些,讓測試分支與生產(chǎn)分支的代碼不要差太多,避免解決沖突。
3.如果自己的項目并不是在生產(chǎn)環(huán)境下開發(fā)新功能和修改bug,推薦使用開發(fā)分支dev作為拉取和推送(而不是從master拉取,合并到sit),最后再把dev分支整體合并到sit測試環(huán)境。
四、為什么要從生產(chǎn)環(huán)境master拉取創(chuàng)建一個最新代碼分支,當(dāng)開發(fā)完后再將其合并到sit測試環(huán)境?
開發(fā)者從項目從生產(chǎn)環(huán)境master分支拉取開發(fā),可以保證開發(fā)者的代碼上生產(chǎn)環(huán)境后必定生效,畢竟就是在生產(chǎn)環(huán)境的代碼下開發(fā)的。這種流程場景一般是項目開發(fā)完一部分,這部分已經(jīng)上生產(chǎn)了,接下來開發(fā)其他部分要上生產(chǎn),或者修改生產(chǎn)上的問題。該方法弊端是,從生產(chǎn)上拉取的分支但是不能直接上生產(chǎn),需要先推送到測試環(huán)境的分支,測試通過后再合并到生產(chǎn)。測試環(huán)境又與生產(chǎn)環(huán)境不同,這就導(dǎo)致測試環(huán)境代碼沖突畢竟嚴(yán)重。
如果項目不是上述流程場景,而是多人共同開發(fā)dev分支,最后整體上測試環(huán)境,最后上生產(chǎn)環(huán)境,則沖突會小很多。
五、回滾操作
1.提交到本地后,還沒有push到遠(yuǎn)端時的回滾操作,可以點擊查看歷史,點擊undo Commit 這種方式最推薦,不會影響別人代碼與自己代碼。
2.如果是以前的提交有問題,那么可以選擇使用revert commit和revert current Branch here(慎用,會丟失提交記錄)。
注意:回滾操作要小心使用,不然會造成丟失他人與自己代碼問題。
總結(jié)
以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了代碼沖突原因、解決方法。不同項目代碼合并流程不同,只能作為參考,另外作為一名開發(fā)人員,必須適當(dāng)了解一定的git合并分支,撤回提交,回退版本等操作,避免出現(xiàn)自己代碼丟失或者導(dǎo)致他人代碼丟失的現(xiàn)象出現(xiàn)。文章來源:http://www.zghlxwxcb.cn/news/detail-712633.html
最后:注意休息,保護(hù)好身體;不要忘了學(xué)習(xí),可以少學(xué),不要停止 人生如逆水行舟不進(jìn)則退
文章來源地址http://www.zghlxwxcb.cn/news/detail-712633.html
到了這里,關(guān)于idea解決代碼沖突-git分布式合并分支-加git回滾操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!