欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何解決git revert后再次merge代碼丟失問(wèn)題

 更新時(shí)間:2025年04月02日 09:05:59   作者:coding4all  
這篇文章主要介紹了如何解決git revert后再次merge代碼丟失問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

git revert后再次merge代碼丟失問(wèn)題

問(wèn)題場(chǎng)景

公司使用gitlab作為代碼管理工具,開(kāi)發(fā)人員新功能開(kāi)發(fā)結(jié)束時(shí)(開(kāi)發(fā)分支:feature-member),合并代碼需要提交mr(pr)給相關(guān)負(fù)責(zé)人,由負(fù)責(zé)人將代碼合并到master。

此時(shí)產(chǎn)品說(shuō)暫時(shí)不上線此版本,和下一個(gè)版本一起發(fā)布,為了保證master分支代碼的準(zhǔn)確性,我們使用git revert將本次mr撤銷。

然后等下個(gè)版本開(kāi)發(fā)完成后,提交了mr,發(fā)現(xiàn)變動(dòng)的文件只有revert之后的變動(dòng),第一次mr的文件改動(dòng)都沒(méi)有了(git revert后再次merge,git默認(rèn)會(huì)丟棄這段代碼)。

解決方案

# 切換到master分支
git checkout master
git pull
# 基于master拉出一個(gè)分支 revert_tmp
git checkout -b revert_tmp

# 將之前git revert那次commit再次revert(commit號(hào)從git log可以查到)
git revert acd414e1cd42315ce93a9730db961155be140013
git checkout feature-member
git merge revert_tmp
git commit -m "revert"
git push

經(jīng)過(guò)以上操作后,再次提pr,這樣第一次revert之前的代碼就可以看到了。

git revert 某次 merge 之后再重新 merge 代碼被沖掉

問(wèn)題

在 develop 分支發(fā)現(xiàn) merge 某個(gè) feature 分支時(shí)的代碼有問(wèn)題(如果是 feature 分支的代碼有問(wèn)題,只要修改該 feature 分支的代碼,再 merge 到 develop 就好了。

如果是 merge 的時(shí)候沖突沒(méi)有解決好則需要 revert 該次 merge),于是用 ’git revert < commit id > -m 1 ‘ 命令 revert 了該次 merge , 但是 revert 之后想把這個(gè) feature 分支再重新merge到develop 分支時(shí),發(fā)現(xiàn) merge 不了。

解決方法

在 revert feature 的 merge 之后,checkout 到 feature 分支,

使用 git reset head^ 撤銷上次提交(如果merge前有多個(gè)提交就撤消所有提交)

然后修改有問(wèn)題的代碼,代碼沒(méi)問(wèn)題的話不修改也行

修改完后 ,將代碼提交并強(qiáng)推到遠(yuǎn)程分支

git add .
git commit -m “”
git push -f

再 checkout develop 切換到 develop 分支

用 git merge 再merge 一次該feature分支,就會(huì)發(fā)現(xiàn)代碼都 merge上去了

最后 push 到遠(yuǎn)程就ok了。

總結(jié)

這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論