當我們在本地修改代碼之前未pull,等我們在本地修改完代碼在git pull,這時候就會報錯:
error: Your local changes to the following files would be overwritten by merge
這時候如何解決這個問題,首先取決於你是否想要保存本地修改:
1.如果你想保留剛才本地修改的代碼,並把git服務器上的代碼pull到本地(本地剛才修改的代碼將會被暫時封存起來),則執行以下三條命令
git stash
git pull origin master
git stash pop
git stash的時候會把你本地快照,然后git pull 就不會阻止你了,pull完之后這時你的代碼並沒有保留你的修改。
這時候執行git stash pop你去本地看,會發現發生沖突的本地修改還在,這時候使用add,commit,push 命令即可更新本地代碼到服務器了。
2.如果你想完全地覆蓋本地的代碼,只保留服務器端代碼,則直接回退到上一個版本,再進行pull,用遠程的代碼直接覆蓋本地就好了:
git reset --hard
git pull origin master