項(xiàng)目描述:
本地有master分支竞帽,dev分支。從dev分支中新建了三個(gè)任務(wù)鸿捧,小1屹篓,小2,小3匙奴。這三個(gè)任務(wù)完成后感覺(jué)沒(méi)問(wèn)題了堆巧,就勤快的把它們都合并到了dev分支中。開(kāi)開(kāi)心心去睡覺(jué)了泼菌。
第二天谍肤,項(xiàng)目經(jīng)理說(shuō)小1,小2都不好看哗伯,現(xiàn)在只要小3荒揣,你把小3合并到dev推送到遠(yuǎn)程吧!我的天哪焊刹!這應(yīng)該怎么辦系任。。虐块。
在dev創(chuàng)建了三個(gè)分支小1俩滥,小2,小3
每一個(gè)分支都創(chuàng)建了自己的文件夾如圖
然后都提交了本地代碼如圖非凌,依次提交小1举农,小2荆针,小3敞嗡,三個(gè)分支三個(gè)顏色,然后按照順序展示航背,這個(gè)圖還是不錯(cuò)的喉悴。
現(xiàn)在就是合并代碼了,用dev去合并小1玖媚,小2箕肃,小3。
工作目錄里就有了小1今魔,小2勺像,小3障贸。
然后就是刪除小1,小2吟宦,小3分支篮洁。
好了現(xiàn)在怎么辦!領(lǐng)導(dǎo)說(shuō)dev里只能有小3殃姓!
解決思路:
首先要回滾到最初創(chuàng)建這三個(gè)分支的起點(diǎn)那里袁波,然后就是把小3分支恢復(fù)出來(lái),在單獨(dú)合并一下小3分支就可以啦蜗侈。
1篷牌、回滾的命令非常簡(jiǎn)單,目標(biāo)也就是圖中備注為工作的那個(gè)節(jié)點(diǎn)(6e5b23e)踏幻。
git reset --hard 6e5b23e
?2枷颊、找回小3的分支。你現(xiàn)在都沒(méi)有日志叫倍,所以需要一個(gè)能看所有日志的命令 reflog
git reflog
這里找到了小3的提交id偷卧,就用它檢出一下小3來(lái)。
git checkout c08e83a
他這里的意思是現(xiàn)在是一個(gè)游離的狀態(tài)吆倦,讓新建立一個(gè)分支听诸,命令都給寫(xiě)好了。git checkout -b 新的分支名字
git checkout -b 新小3
這樣小3的分支就恢復(fù)回來(lái)啦蚕泽!
然后再進(jìn)新dev的合并就可以了晌梨!大功告成!