1. 程式人生 > >記錄一次idea中回退已經合併到master分支並且將master主幹push到遠端回退操作

記錄一次idea中回退已經合併到master分支並且將master主幹push到遠端回退操作

上線程式碼由於11.11大促臨時決定延期上線,但是已經合併到master並且push到遠端,所以需要回退以確保origin/master分支為線上版本

使用其中步驟:

工作中遇到git遠端倉庫需要回退到歷史版本的問題,根據網上的搜尋結果結合自己的實踐,整理了如下步驟:

1. 在“Show History”中找到當前版本(取名:newVersion)和想要回退到的版本(oldVersion) 

ShowHistory
2. 選擇newVersion和oldVersion點選“Copy Revision Number”複製兩個版本的版本號: 
newVersion:2746f428a3d3d000bd1b0e886ef8167e1f73ec9c  
oldVersion :6bc5691cbe7304cb185b70fbc0dd975c7de86e8a 

ShowHistory
3. 右擊專案依次選中:Git->Repository->Reset HEAD 

Reset HEAD
4. 選中Reset Type:*Hard, To Commit:6bc5691cbe7304cb185b70fbc0dd975c7de86e8a;然後點選Reset按鈕* 

hardReset
5. 這時原生代碼已經回退到oldVersion,這時候如果直接push到遠端倉庫,會提示版本衝突,點選“cancel”取消。 

push

pushRejected
6. 下面有兩種解決衝突的方法 
方法一 :不解決,直接強制提交: 
a. 開啟Terminal,切換到專案所在目錄 
b. 執行:spring-mvc $git push -f 

terminal


方法二: 
a. 右擊專案依次選中:Git->Repository->Reset HEAD 
b. 選中Reset Type:Mixed, To Commit:2746f428a3d3d000bd1b0e886ef8167e1f73ec9c;然後點選Reset按鈕 

mixedReset

c. 這時你會發現,最新版本有回到newVersion。但是程式碼還是oldVersion的程式碼,這時候重push到遠端倉庫就不會版本衝突了 
7. 方法一vs方法二 
方法一會將回退的提交記錄抹點而方法二會保留 
8. Done
--------------------- 
 

總結:

1:剛開始使用上述作者方法2回退,但是由於合併後將master程式碼push到遠端後,再次合併其他分支程式碼時,通過idea中預設外掛合併時,合併不到其他分支原有下次上線需要的程式碼,

2:所以使用方法二自己實踐有問題,所以轉用使用方法一操作,方法一操作完成後,合併其他分支時,可以合併到原來下次上線相關程式碼,

注意:注意:注意:如果要回退master程式碼時,一定要在origin/master分支新建新的分支,操作完成無誤後,再在主幹master分支操作,操作master分支程式碼一定要嚴謹操作

回退後的版本資訊:

回退前的版本資訊:

仍然可以合併並push到origin/master的分支程式碼列表: