pycharm Git拉取时,报“Your local changes would be overwritten by merge.Commit, stash or revert them to...

今天将本地分支与远程master分支合并时,出现了这样的问题:


image.png

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

记录下解决方法

方法一

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

  1. 通过VCS -> Git -> Stash Changes,将本地的所有改动暂存到本地仓库。
    这一步执行后会撤销本地的所有改动,这时候不用担心自己修改的代码怎么不见了,还可以拿出来的。

    image.png

  2. 现在可以pull了


    image.png

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


    image.png
  3. 如果想把自己修改的部分从本地仓库中再拿出来的话,可以通过VCS -> Git -> unStash Changes把之前的改动合并到本地。

方法二

直接覆盖本地的代码,放弃自己本地的改动,只保留服务器端代码
直接回退到上一个版本,再进行pull。
【步骤】

  1. 直接 VCS -> Git -> Reset HEAD...

    image.png

  2. 选择需要的reset模式:hard(即放弃本地代码,新修改的都不要了,退回上一版本,再拉取代码到本地。)


    image.png

    image.png

延伸

在使用Git的过程中,有些时候我们只想要 git 服务器中的最新版本的项目,对于本地的项目中修改不做任何理会,就需要用到 Git pull 的强制覆盖。

git fetch --all
git reset --hard origin/master 
git pull

git pull从远程拉取最新版本 到本地自动合并,git fetch从远程获取最新版本 到本地不会自动合并

你可能感兴趣的:(pycharm Git拉取时,报“Your local changes would be overwritten by merge.Commit, stash or revert them to...)