首頁(yè)技術(shù)文章正文

Java培訓(xùn):git實(shí)戰(zhàn)技巧-如何同時(shí)撤回遠(yuǎn)程和本地分支合并操作

更新時(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)

1655882434888_1.jpg

  > `develop`分支 執(zhí)行 `git revert -m 1 1c3420d0452551040078a830a20c3a4e491b19c8` 撤銷合并

  ```

  執(zhí)行后會(huì)彈出編輯頁(yè)面, 直接 :wq 保存即可

  命令的作用, 撤銷合并的操作, 并創(chuàng)建一個(gè)新的commit提交記錄

  ```

1655882529529_4.jpg

  ```

  執(zhí)行完上面的操作,可以看到3毛的配置回來(lái)了,而 的代碼被回退

  ```

  > `develop`分支 執(zhí)行 `git push` 將撤銷合并推送到遠(yuǎn)程`develop`分支

1655882564168_5.jpg

  ```

  遠(yuǎn)程分支,也僅有3毛分支的代碼, 這樣就完成了 本地 + 遠(yuǎn)程 合并分支代碼的撤銷操作

  可以繼續(xù)修改自己分支的bug問(wèn)題,修改完畢后將 的代碼重新合并到develop分支

  ```

  > 切換到`feature_task_bobo`分支, 修改配置并提交

1655882596272_6.jpg

  > 切換到`develop`分支, 合并 分支代碼

  ```

  出現(xiàn)沖突, 解決沖突代碼,解決完畢后 再次commit and push

  ```

1655882686034_9.jpg

  > 這樣問(wèn)題就全部解決啦~

  >

  > 執(zhí)行` git log `查看狀態(tài)

1655882708278_10.jpg

  > 注意

  如果撤銷合并操作后, 再次合并代碼時(shí), 發(fā)現(xiàn)之前參與合并過(guò)的代碼無(wú)法再次合并到develop分支時(shí)

  可以再一次的在 develop分支 執(zhí)行 `git revert 撤銷合并的commit版本號(hào)` 將之前撤銷的 代碼找回來(lái)即可。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!