git 报错

git pull 遇到错误,error: Your local changes to the following files would be overwritten by merge:


前面提到我最近在用git分布式版本控制系统,因为我在另一位同学push后没有pull下来就在自己原来的代码基础上修改,然后想要push上去,报错,

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

意思就是我新修改的代码文件,将会被git服务器上的代码替代(我当然不希望自己的代码不见了呀)。
解决方法:

  • 方法1:如果想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
  • git stash
    git pull origin master
    git stash pop
    

    这样的话,服务器上的代码更新到了本地,而且本地修改后的代码使用add,commit,push命令即可更新本地代码到服务器了。

  • 方法2:如果想完全覆盖本地的代码,只保留服务器端代码,则直接退回到上一个版本,再进行pull:
  • git reset --hard
    git pull origin master
    

    其中origin master表示git的主分支。