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

客户端操作

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

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

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

<<<<<<< HEAD
        代码新增
=======
        一个代码新增
>>>>>>> 5a5d4f30cbc9939368aa471fd989d91e2b8865c1

在这里插入图片描述

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

        代码新增
        一个代码新增

重新提交,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.

$ git pull origin dev dev  更新

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

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

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

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


场景三、远程仓库更新了代码,本地未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.


$ git pull origin dev dev  更新(远程代码更了下来,没有黄色感叹号,但是跳转到merge编辑页面,提交合并内容相关信息保存)

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


 git push origin dev


成功-------结束

扩展
解决办法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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值