场景:甲修改了文件A并且push到了git server上,这时乙也在修改文件A,他想看一下甲修改了什么,于是从git server上pull下来,但是会遇到这样的提示: error: Your local changes to the following files would be overwritten by merge: 文件A Please, commit your changes or stash them before you can merge. 可是乙不想把他未完成的修改commit,请问这个时候要怎么操作?或者可以先把文件A暂存起来?并且可以在日后push的不保留记录?
解释:如果你上传了文件A到服务器上,他人修改了文件A并提交到服务器,这是如果你没有修改A文件,则可以直接git pull 拿取下来. 但是如果你上传了之后,也修改了A文件,那么这是你执行git pull 就是提示Please, commit your changes or stash them before you can merge.这个error. Please, commit your changes or stash them before you can merge.这句话的意思也就是在你合并代码之前,请提交或将其隐藏起来. 如果你也修改了A文件,那么可以执行git stash 将提交到服务器之后所修改的代码隐藏起来,再执行git pull 讲服务器的代码拿取下来,这是,打开的代码,将会被更新.
这里要谨慎执行git stash pop 了,因为这样会发生双方修改的情况,容易使代码变乱.最后把你修改的文件备份一下,重新修改更新后的代码使用. 当然这里修改模块化的东西,修改互不影响的,可以执行git stash pop的.这个要具体情况具体对待.