git 平常出錯筆記

和同事同時修改了某個文件,忘記git pull,直接提交git

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

解決方案(親測有效):緩存

方法1:若是你想保留剛纔本地修改的代碼,並把git服務器上的代碼pull到本地(本地剛纔修改的代碼將會被暫時封存起來)服務器

  1. git stash (idea 中選擇stash changes)app

  2. git pull origin master(idea 中選擇pull)ide

  3. git stash pop (idea 中選擇 unStash changes)idea

註釋:git stash(git 儲藏)code

  • git stash會把全部未提交的修改(包括暫存的和非暫存的)都保存起來,用於後續恢復當前工做目錄
    • stash是本地的,不會經過git push命令上傳到git server上
  • 能夠經過git stash pop命令恢復以前緩存的工做目錄
    • 這個指令將緩存堆棧中的第一個stash刪除,並將對應修改應用到當前的工做目錄下
    • 也能夠使用git stash apply命令,將緩存堆棧中的stash屢次應用到工做目錄中,但並不刪除stash拷貝
  • 能夠使用git stash list命令查看現有stash
  • 能夠使用git stash drop命令移除stash
  • 能夠使用git stash show命令查看指定stash的diff

方法二、若是你想徹底地覆蓋本地的代碼,只保留服務器端代碼,則直接回退到上一個版本,再進行pullserver

  1. git reset --hard (回退到上一個版本)it

  2. git pull origin masterast

相關文章
相關標籤/搜索