更新時間:2022-06-22 來源:黑馬程序員 瀏覽量:
1.解決思路
(1)如果正在合并代碼解決沖突中
```
git merge --abort 取消代碼合并
```
(2)如果合并完畢并commit提交到了本地倉庫
```
git reset --hard HEAD^ 回退到上一個版本
后面的選項有四種:
--mixed 為默認,可以不用帶該參數(shù),用于重置暫存區(qū)的文件與上一次的提交(commit)保持一致,工作區(qū)文件內(nèi)容保持不變。
--hard 參數(shù)撤銷工作區(qū)中所有未提交的修改內(nèi)容,將暫存區(qū)與工作區(qū)都回到上一次版本,并刪除之前的所有信息提交:
--soft 僅僅修改分支中的HEAD指針的位置,不會改變工作區(qū)與暫存區(qū)中的文件的版本。
```
(3)如果合并完畢,commit提交到了本地,還push到遠程
```
git revert -m 1 HEAD 回到上一個commit的狀態(tài) (或者在git log 中找到對應(yīng)的合并版本號) 即可撤回合并
git push origin master 撤回合并作為一個新的commit 推送到遠程倉庫
```
2.具體步驟
> 執(zhí)行 `git log `查看日志,找到合并分支對應(yīng)的版本號
> `develop`分支 執(zhí)行 `git revert -m 1 1c3420d0452551040078a830a20c3a4e491b19c8` 撤銷合并
```
執(zhí)行后會彈出編輯頁面, 直接 :wq 保存即可
命令的作用, 撤銷合并的操作, 并創(chuàng)建一個新的commit提交記錄
```
```
執(zhí)行完上面的操作,可以看到3毛的配置回來了,而 的代碼被回退
```
> `develop`分支 執(zhí)行 `git push` 將撤銷合并推送到遠程`develop`分支
```
遠程分支,也僅有3毛分支的代碼, 這樣就完成了 本地 + 遠程 合并分支代碼的撤銷操作
可以繼續(xù)修改自己分支的bug問題,修改完畢后將 的代碼重新合并到develop分支
```
> 切換到`feature_task_bobo`分支, 修改配置并提交
> 切換到`develop`分支, 合并 分支代碼
```
出現(xiàn)沖突, 解決沖突代碼,解決完畢后 再次commit and push
```
> 這樣問題就全部解決啦~
>
> 執(zhí)行` git log `查看狀態(tài)
> 注意
如果撤銷合并操作后, 再次合并代碼時, 發(fā)現(xiàn)之前參與合并過的代碼無法再次合并到develop分支時
可以再一次的在 develop分支 執(zhí)行 `git revert 撤銷合并的commit版本號` 將之前撤銷的 代碼找回來即可。