1.解决思路

  (1)如果正在合并代码解决冲突中

  ```

  git merge --abort 取消代码合并

  ```

  (2)如果合并完毕并commit提交到了本地仓库

  ```

  git reset --hard HEAD^ 回退到上一个版本

  后面的选项有四种:

  --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

  --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

  --soft 仅仅修改分支中的HEAD指针的位置,不会改变工作区与暂存区中的文件的版本。

  ```

  (3)如果合并完毕,commit提交到了本地,还push到远程

  ```

  git revert -m 1 HEAD 回到上一个commit的状态 (或者在git log 中找到对应的合并版本号) 即可撤回合并

  git push origin master 撤回合并作为一个新的commit 推送到远程仓库

  ```

  2.具体步骤

  > 执行 `git log `查看日志,找到合并分支对应的版本号

gitlab pr 合并后怎么撤回_git

  > `develop`分支 执行 `git revert -m 1 1c3420d0452551040078a830a20c3a4e491b19c8` 撤销合并

gitlab pr 合并后怎么撤回_版本号_02

gitlab pr 合并后怎么撤回_github_03

  ```

  执行后会弹出编辑页面, 直接 :wq 保存即可

  命令的作用, 撤销合并的操作, 并创建一个新的commit提交记录

  ```

gitlab pr 合并后怎么撤回_github_04

  ```

  执行完上面的操作,可以看到3毛的配置回来了,而 的代码被回退

  ```

  > `develop`分支 执行 `git push` 将撤销合并推送到远程`develop`分支

gitlab pr 合并后怎么撤回_git_05

  ```

  远程分支,也仅有3毛分支的代码, 这样就完成了 本地 + 远程 合并分支代码的撤销操作

  可以继续修改自己分支的bug问题,修改完毕后将 的代码重新合并到develop分支

  ```

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

gitlab pr 合并后怎么撤回_github_06

  > 切换到`develop`分支, 合并 分支代码

gitlab pr 合并后怎么撤回_工作区_07

gitlab pr 合并后怎么撤回_gitlab pr 合并后怎么撤回_08

  ```

  出现冲突, 解决冲突代码,解决完毕后 再次commit and push

  ```

gitlab pr 合并后怎么撤回_github_09

  > 这样问题就全部解决啦~

  >

  > 执行` git log `查看状态

gitlab pr 合并后怎么撤回_github_10

  > 注意

  如果撤销合并操作后, 再次合并代码时, 发现之前参与合并过的代码无法再次合并到develop分支时

  可以再一次的在 develop分支 执行 `git revert 撤销合并的commit版本号` 将之前撤销的 代码找回来即可。