> 技术文档 > 【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes


Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to proceed.

一、报错场景

在使用Git pull 代码的时候,出现了这样的问题。
【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

二、问题分析

这是因为本地有文件改动未提交,并且该文件和Git服务器最新版本有冲突,此时pull更新就会提示错误,无法更新。

三、解决方法

方法1:保留本地改动的同时,并把Git服务器上的代码pull下来
先把本地改动暂存到本地仓库,pull代码后再把这部分改动代码拿出来。

stash的好处是可以先将你的改动暂存到本地仓库中,随时可以取出来再用,但是不用担心下次push到服务器时,把不想提交的改动也push到服务器上,因为Stash Changes的内容不参与commit和push。

步骤
(1)通过Git -> Stash Changes,将本地的所有改动暂存到本地仓库。
这一步执行后会撤销本地的所有改动,这时候不用担心自己修改的代码怎么不见了,还可以拿出来的。
【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

创建之后,提示如下,

【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

(2)现在可以pull 了。
【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

此时,pull完成后本地代码就更新到最新了,也不会报错了。

(3)如果想把自己修改的部分从本地仓库中再拿出来的话,可以通过Git -> unStash Changes 把之前的改动合并到本地。
【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

如果有冲突,自己手动修改即可。

【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

这样就将之前的改动合并到本地。

OK,可以看到成功将暂存弄回来了。

方法2:直接覆盖本地的代码,放弃自己本地的改动,只保留服务器端代码
前言

当我们用 pycharm 提交代码的时候,每天都要 commit 提交的内容,有时候发现后面写的代码还不如前两天的稳定。

因此,可以直接回退到上一个版本,再进行pull。

这时候想把代码回退到某次 commit 提交,可以使用git的 reset 功能来实现。

步骤
(1)打开Git -> Show History ,查看 commit 提交记录。
【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

(2)直接依次点击Git -> Reset HEAD,
【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

会出现一个弹窗,如下图所示,
【git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to p_how to resolve git merge error your local changes

(3)选择需要的reset模式,reset 回滚有三种类型:

Mixed 此为默认方式 回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也不受影响)
soft 回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响)
hard 回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
这里选择默认的Mixed回滚类型。

(4)To Commit 输入框输入commit id,此处将步骤(1)查询到的版本id号输入进去。

(5)回滚之前,可以先点下 Validate 按钮确定下有没这个commit id。

点Reset之后就可以回滚成功啦。

房地产资讯