Git_pull_error
git pull error筆記
當 git pull 出現
error: Your local changes to the following files would be overwritten by merge:
意思是本地新修改的程式碼檔案,將會被git伺服器上的程式碼覆蓋
git pull == git fetch + git merge
發生衝突時 可以先試以下步驟
先
git fetch
再
git merge origin/master
如果還是無法解決可以使用的解決方法如下:
方法1:使用stash
如果你想保留剛才本地修改的程式碼,並把git伺服器上的程式碼pull到本地(本地剛才修改的程式碼將會被暫時封存起來)
git stash
git pull origin master
git stash pop
**注:**用 pop
指令,可以把某個 Stash 拿出來並套用在目前的分支上。套用成功之後,那個套用過的 Stash 就會被刪除。
方法2 : 放棄變更
如果你想完全地覆蓋本地的程式碼,只保留伺服器端程式碼,則直接回退到上一個版本,再進行pull:
git reset --hard
git pull origin master
注: 其中origin master表示git的主分支。
方法3 : 使用分支( 推薦 正統)
- 切分支出去commit
- 在切回 master fetch
- 再進行 merge
git checkout -b <branch>
git commit -m "add dev"
git checkout master
git merge branch
EX :
注: 感謝 KFC 前輩的提供正確解決衝突的教學
參考
git pull遇到錯誤:error: Your local changes to the following files would be overwritten by merge:解決方法