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