Git出現error: Your local changes to the following files would be overwritten by merge: ... Please, commit your changes or stash them before you can merge.的問題解決(Git代碼衝突)git
在使用git pull拉取服務器最新版本時,若是出現error: Your local changes to the following files would be overwritten by merge: ... Please, commit your changes or stash them before you can merge.錯誤時,表明這代碼衝突了,本地修改了代碼致使沒法覆蓋服務器上的。服務器
此時有以下解決方法:post
(注意:在作全部操做前,切記要先備份本地代碼。).net
一、若是但願保留生產服務器上所作的改動,僅僅併入新配置項, 處理方法以下:code
git stash git pull git stash pop
而後可使用Git diff -w +文件名來確認代碼自動合併的狀況。blog
二、若是要直接使用服務器上最新版本,那麼能夠選擇直接覆蓋it
git reset --hard git pull
其中git reset是針對版本。ast
http://blog.csdn.net/misakaqunianxiatian/article/details/51103734class
##############################服務器端
方法1:若是你想保留剛纔本地修改的代碼,並把git服務器上的代碼pull到本地(本地剛纔修改的代碼將會被暫時封存起來)
git stash git pull origin master git stash pop
如此一來,服務器上的代碼更新到了本地,並且你本地修改的代碼也沒有被覆蓋,以後使用add,commit,push 命令便可更新本地代碼到服務器了。
方法二、若是你想徹底地覆蓋本地的代碼,只保留服務器端代碼,則直接回退到上一個版本,再進行pull
git reset --hard git pull origin master