【pyCharm Git】解决报错Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert t
目录
Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to proceed.
一、报错场景
二、问题分析
三、解决方法
方法1:保留本地改动的同时,并把Git服务器上的代码pull下来
前言
步骤
方法2:直接覆盖本地的代码,放弃自己本地的改动,只保留服务器端代码
前言
步骤
Git拉取失败 Your local changes will be overwritten by merge. Commit, stash, or revert them to proceed.
一、报错场景
在使用Git pull 代码的时候,出现了这样的问题。
二、问题分析
这是因为本地有文件改动未提交,并且该文件和Git服务器最新版本有冲突,此时pull更新就会提示错误,无法更新。
三、解决方法
方法1:保留本地改动的同时,并把Git服务器上的代码pull下来
前言
先把本地改动暂存到本地仓库,pull代码后再把这部分改动代码拿出来。
stash的好处是可以先将你的改动暂存到本地仓库中,随时可以取出来再用,但是不用担心下次push到服务器时,把不想提交的改动也push到服务器上,因为Stash Changes的内容不参与commit和push。
步骤
(1)通过VCS -> Git -> Stash Changes,将本地的所有改动暂存到本地仓库。
这一步执行后会撤销本地的所有改动,这时候不用担心自己修改的代码怎么不见了,还可以拿出来的.
创建之后,提示如下,
(2)现在可以pull 了。
此时,pull完成后本地代码就更新到最新了,也不会报错了。
(3)如果想把自己修改的部分从本地仓库中再拿出来的话,可以通过VCS -> Git -> unStash Changes 把之前的改动合并到本地。
如果有冲突,自己手动修改即可。
这样就将之前的改动合并到本地。
OK,可以看到成功将暂存弄回来了。
方法2:直接覆盖本地的代码,放弃自己本地的改动,只保留服务器端代码
前言
当我们用 pycharm 提交代码的时候,每天都要 commit 提交的内容,有时候发现后面写的代码还不如前两天的稳定。
因此,可以直接回退到上一个版本,再进行pull。
这时候想把代码回退到某次 commit 提交,可以使用git的 reset 功能来实现。
步骤
(1)打开pycharm -> VCS -> Git -> Show History ,查看 commit 提交记录。
(2)直接依次点击VCS -> Git -> Reset HEAD...,
会出现一个弹窗,如下图所示,
(3)选择需要的reset模式,reset 回滚有三种类型:
- Mixed 此为默认方式 回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也不受影响)
- soft 回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响)
- hard 回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
这里选择默认的Mixed回滚类型。
(4)To Commit 输入框输入commit id,此处将刚刚上一步查询到的id号输入进去,也就是\"9af94622\"。
(5)回滚之前,可以先点下 Validate 按钮确定下有没这个commit id。
点Reset之后就可以回滚成功啦。
这里我自己也还没有玩过,仅供参考哈~~。