当前位置:   article > 正文

git(代码冲突解决(客户端操作和命令行操作))_git resolve

git resolve

客户端操作

场景一、远程仓库更新了代码,本地未pull 便修改了代码
1.本地未提交代码情况
i.直接回退代码(revert),pull
ii.直接pull,报错
在这里插入图片描述
点击三角下标重置(reset),远程代码覆盖本地代码

场景二、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较远】
报错如下
在这里插入图片描述
点击pull-----远程仓库新增代码自动合并到本地,且本地新增代码保留,但是本地新增代码未push到远程仓库,需要再push才可更新到远程仓库

场景三、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较近】
报错
在这里插入图片描述
点击pull报错,且本地与远程代码冲突

<<<<<<< HEAD
        代码新增
=======
        一个代码新增
>>>>>>> 5a5d4f30cbc9939368aa471fd989d91e2b8865c1
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

在这里插入图片描述
解决办法1:关闭报错页面(resolve)
自行处理,删除多余部分

        代码新增
        一个代码新增
  • 1
  • 2

重新提交,push

解决方法2:如果不是点resolve。而是点关闭和abort,文件报黄色感叹号,自行revert即可,然后push,报错了,再次pull,报错点击pull右侧三角下标,选reset,远程仓库代码覆盖本地代码

在这里插入图片描述

命令行处理

场景一、远程仓库更新了代码,本地未pull 便修改了代码
1.本地未提交代码情况
i.git checkout 2.txt 撤销修改
git pull origin dev dev 更新

ii.直接pull,未报错,但是远程新增代码没有更到本地代码里

场景二、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较近】,push

$ git push origin dev
To 192.168.253.134:bigdata0810/bigdata0810.git
 ! [rejected]        dev -> dev (non-fast-forward)
error: failed to push some refs to '192.168.253.134:bigdata0810/bigdata0810.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
$ git pull origin dev dev  更新

  • 1
  • 2

本地代码冲突(文件有黄色感叹号)

<<<<<<< HEAD
        ffffff
=======
        1111122333
>>>>>>> 856c7373753058590e1736457c6669781402964c
    }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

试一下自行处理(删除报错部分)----提交,推送----成功了

 git add .
git commit -m "自己处理"
 git push origin dev


  • 1
  • 2
  • 3
  • 4
  • 5

场景三、远程仓库更新了代码,本地未pull 便修改了代码,且commit【两者代码较远】,push

 git push origin dev
To 192.168.253.134:bigdata0810/bigdata0810.git
 ! [rejected]        dev -> dev (fetch first)
error: failed to push some refs to '192.168.253.134:bigdata0810/bigdata0810.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
$ git pull origin dev dev  更新(远程代码更了下来,没有黄色感叹号,但是跳转到merge编辑页面,提交合并内容相关信息保存)

  • 1
  • 2

此时本地新增代码没有推送到远程仓库,需要推送


 git push origin dev


  • 1
  • 2
  • 3
  • 4

成功-------结束

扩展
解决办法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
$ git stash // 临时将工作区文件的修改保存至堆栈中
$ git pull origin master // 拉取服务器的代码
$ git stash pop // 将之前保存至堆栈中的文件取出来
解决办法2:如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull:
$ git reset --hard // 回滚到上一个版本
$ git pull origin master

git部分代码(index.txt)merge
将dev 中代码merge到preview
git checkout dev
git pull
git checkout preview
git pull
git checkout dev project/code/file/index.txt
git commit -m “”
git push origin preview

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/491742
推荐阅读
  

闽ICP备14008679号