error: Your local changes to the following files would be overwritten by merge

问题场景

代码写到一半,git pull拉取代码,结果报错代码冲突

解决办法

其实报错信息的下一行就提示了怎么解决:Please commit your changes or stash them before you merge。就是说要么先把开发区的修改先git add和git commit提交了,要么通过git stash把修改暂存起来。前种和正常提交代码一样就不说了,下面是后种的实现。

将代码暂存

git stash

拉取代码,假设拉取test新分支

git pull origin test

将暂存的代码还原

git stash pop 

这时有冲突的代码在文件里是这样的格式

<<<<<<< Updated upstream
git pull 拉取到的
=======

git stash暂存的
>>>>>>> Stashed changes

然后就可以手动修改冲突,即把代码改成你最终想要的,再提交就可以了

原因分析

git pull相当于执行了两步:git fetch将代码拉取到本地版本库、git checkout将代码同步到工作区。所以当git checkout的时候发现代码版本不一致,就激活报错了,所以解决问题的核心就是消除不一致

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值