記錄IDEA回退,遠程庫未回退問題

  在使用IDEA的reset時,會出現本地代碼雖然回退了,可是遠程代碼庫並未回退到對應的版本。簡單說,本地回退了,遠程庫未回退。這時候咱們就須要使用命令行操做方式了。git

一、在log上找到要恢復的版本號服務器

  使用git log查看須要恢復到的版本號。拿到git log version版本號。測試

  git logspa

git log


二、在客戶端執行以下命令(執行前,先將本地代碼切換到對應分支)命令行

  git reset --hard version版本號blog

  

git reset --hard xxx版本號

三、強制push到對應的遠程分支(如提交到dev分支)開發

  git push -f -u origin devit

  git push -f -u origin dev

  注意:如今到服務器上看到的代碼就已經被還原回去了。io

  這種操做存在兩個問題,服務器上的代碼雖然被還原了;table

  問題1:如有多人在使用同一個庫,他們本地的代碼版本依然是比服務器上的版本高的。若是別人再從新提交代碼的話,你回退(reset)的操做就白操做了。

    解決方法1:讓別人把本地的高版本分支先刪掉,而後從新從服務器上拉取分支。

  問題2:如有多人在使用同一個庫,若是執行了步驟3 '強制push到對應的遠程分支'會致使別人已經提交的代碼被刪除。因此慎用強制push這個命令。。。

    解決方法2:使用另一種方法,不過我沒有遇到。因此先放着到時候補上。固然最好的辦法是開發不回退,儘可能測試經過了再提交代碼。

相關文章
相關標籤/搜索