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

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

1、在log上找到要恢復的版本號

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

  git log

git log


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

  git reset --hard version版本號

  

git reset --hard xxx版本號

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

  git push -f -u origin dev

  git push -f -u origin dev

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

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

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

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

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

    解決方法2:使用另外一種方法,不過我沒有遇到。所以先放着到時候補上。當然最好的辦法是開發不回退,儘量測試通過了再提交代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章