更新時(shí)間:2022-06-22 來(lái)源:黑馬程序員 瀏覽量:
1.解決思路
(1)如果正在合并代碼解決沖突中
```
git merge --abort 取消代碼合并
```
(2)如果合并完畢并commit提交到了本地倉(cāng)庫(kù)
```
git reset --hard HEAD^ 回退到上一個(gè)版本
后面的選項(xiàng)有四種:
--mixed 為默認(rèn),可以不用帶該參數(shù),用于重置暫存區(qū)的文件與上一次的提交(commit)保持一致,工作區(qū)文件內(nèi)容保持不變。
--hard 參數(shù)撤銷工作區(qū)中所有未提交的修改內(nèi)容,將暫存區(qū)與工作區(qū)都回到上一次版本,并刪除之前的所有信息提交:
--soft 僅僅修改分支中的HEAD指針的位置,不會(huì)改變工作區(qū)與暫存區(qū)中的文件的版本。
```
(3)如果合并完畢,commit提交到了本地,還push到遠(yuǎn)程
```
git revert -m 1 HEAD 回到上一個(gè)commit的狀態(tài) (或者在git log 中找到對(duì)應(yīng)的合并版本號(hào)) 即可撤回合并
git push origin master 撤回合并作為一個(gè)新的commit 推送到遠(yuǎn)程倉(cāng)庫(kù)
```
2.具體步驟
> 執(zhí)行 `git log `查看日志,找到合并分支對(duì)應(yīng)的版本號(hào)
> `develop`分支 執(zhí)行 `git revert -m 1 1c3420d0452551040078a830a20c3a4e491b19c8` 撤銷合并
```
執(zhí)行后會(huì)彈出編輯頁(yè)面, 直接 :wq 保存即可
命令的作用, 撤銷合并的操作, 并創(chuàng)建一個(gè)新的commit提交記錄
```
```
執(zhí)行完上面的操作,可以看到3毛的配置回來(lái)了,而 的代碼被回退
```
> `develop`分支 執(zhí)行 `git push` 將撤銷合并推送到遠(yuǎn)程`develop`分支
```
遠(yuǎn)程分支,也僅有3毛分支的代碼, 這樣就完成了 本地 + 遠(yuǎn)程 合并分支代碼的撤銷操作
可以繼續(xù)修改自己分支的bug問(wèn)題,修改完畢后將 的代碼重新合并到develop分支
```
> 切換到`feature_task_bobo`分支, 修改配置并提交
> 切換到`develop`分支, 合并 分支代碼
```
出現(xiàn)沖突, 解決沖突代碼,解決完畢后 再次commit and push
```
> 這樣問(wèn)題就全部解決啦~
>
> 執(zhí)行` git log `查看狀態(tài)
> 注意
如果撤銷合并操作后, 再次合并代碼時(shí), 發(fā)現(xiàn)之前參與合并過(guò)的代碼無(wú)法再次合并到develop分支時(shí)
可以再一次的在 develop分支 執(zhí)行 `git revert 撤銷合并的commit版本號(hào)` 將之前撤銷的 代碼找回來(lái)即可。
Java培訓(xùn):git實(shí)戰(zhàn)技巧-如何將暫存區(qū)的多個(gè)功能代碼分成多次提交
2022-06-22Java培訓(xùn):feature分支開(kāi)發(fā)到一半時(shí)切換到bugfix分支,如何暫存數(shù)據(jù)
2022-06-22Java培訓(xùn)話題:學(xué)會(huì)java能干什么?
2022-06-20字節(jié)流與字符流之間如何實(shí)現(xiàn)轉(zhuǎn)換?
2022-06-15Java線程五種狀態(tài)與六種狀態(tài)兩種說(shuō)法有什么區(qū)別?
2022-06-15JVM常見(jiàn)的垃圾回收器有哪些?
2022-06-15