Git使用pull拉取代码报错:error: Your local changes to the following files would be overwritten by merge:

错误描述

pull 拉取远端代码报错 ,显示一堆警告和一个错误

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


产生原因

该报错在 git pull 拉取代码时出现,一句话解释就是你在本地改动了代码但是还没有提交,此时再拉取最新代码,远程代码和你当前的本地代码发生冲突!(注意有冲突时才会提示,如果没有冲突,则 git pull 成功,因为 git pull 实质上就是一个远程分支 merge 到本地分支过程。

解决方法

保留本地修改

本地代码commit 后再pull

//先把当前修改的工作区内容提交了
git add .
git commit

//拉取最新代码,这里就相当于两个已提交分支的合并了,有冲突解决冲突,没冲突就pull成功
git pull

//解决完冲突后,继续完成自己的本地代码

//完成以后,add/commit/push三连到远程库
git add
git commit
git push

***这样就实现了开发过程中,将远程最新改动合到了我本地,然后我基于最新代码接着开发
***该方法的缺点是会多出一条额外提交记录(pull之前的这次提交)

 stash

执行以下三条命令

git stash #封存修改
git pull origin master 
git stash pop #把修改还原

操作介绍:

git stash:备份当前工作区内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前工作区内容保存到Git栈中
git pull:拉取服务器上当前分支代码
git stash pop:从Git栈中读取最近一次保存的内容,恢复工作区相关内容。同时,用户可能进行多次stash操作,需要保证后stash的最先被取到,所以用栈(先进后出)来管理;pop取栈顶的内容并恢复
git stash list:显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear:清空Git栈


废弃本地的修改

核心思想就是版本回退,具体命令如下

不建议使用这种方法。除非你再三确定不需要本地的修改了

git reset --hard 
git pull origin master

注意:

每次在本地开始修改代码时,养成先 git pull 拉取版本库最新改动的习惯,就不会遇到这个报错了。


文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会一一回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力     长路漫漫,道阻且长

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当你在使用 SourceTree 操作 Git 时遇到 "Your local changes to the following files would be overwritten by merge" 的错误提示,这意味着你正在尝试合并的分支与当前分支存在冲突。为了解决这个问题,你可以采取以下步骤: 1. 首先,你需要查看哪些文件发生了冲突。SourceTree 会在界面上用红色标记出发生冲突的文件。你可以点击这些文件,查看具体的冲突内容。 2. 接下来,你需要决定如何处理这些冲突。有两种常见的方法: a. 保留当前分支的更改:如果你认为当前分支的更改是正确的,可以选择保留它们。在 SourceTree 中,右键点击发生冲突的文件,选择 "Reset File to Previous Version"(重置文件到之前的版本)。这将撤销你在当前分支上的更改,使文件回到合并前的状态。 b. 保留要合并的分支的更改:如果你认为要合并的分支的更改更合适,可以选择保留它们。在 SourceTree 中,右键点击发生冲突的文件,选择 "Use Theirs"(使用他们的版本)。这将将文件恢复到要合并的分支上的状态。 3. 解决完所有冲突后,你需要提交更改。在 SourceTree 中,点击 "Commit"(提交)按钮,填写提交信息,然后点击 "Commit & Push"(提交并推送)按钮。 4. 最后,确保你的本地仓库与远程仓库同步。在 SourceTree 中,点击 "Pull"(拉取)按钮,以获取远程仓库的最新更改。 通过以上步骤,你应该能够解决使用 SourceTree 操作 Git 时遇到的 "Your local changes to the following files would be overwritten by merge" 错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潮汐未见潮落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值