場景:同個項目同時開發兩個版本分支,不小心將a版本代碼提交到b版本,想要將代碼會滾到提交前。
通過在網上搜索答案和實踐,總結出以下操作步驟:
1. 項目右鍵后,然后在“Show History”中找到當前版本(暫時取名newVersion)和想要回退到的版本(暫時取名oldVersion)
2. 選擇oldVersion版本右鍵點擊“Copy Revision Number”復制oldVersion版本的版本號:
3. 然后右擊項目依次選中:Git->Repository->Reset HEAD
4.Reset Type項選擇Hard,To Commit項填寫剛剛復制的版本號;然后點擊Reset按鈕
5. 這時本地代碼已經回退到oldVersion,這時候如果直接push到遠程倉庫,會提示版本沖突,點擊“cancel”取消。
6. 下面有兩種解決沖突的方法(我選擇的第一種)
方法一 :不解決,直接強制提交:
a. 打開Terminal,切換到項目所在目錄
b. 執行:git push -f
方法二:
a. 右擊項目依次選中:Git->Repository->Reset HEAD
b. Reset Type項選擇Mixed, To Commit項填寫最新提交記錄版本號(切記是最新分支的版本號newVersion分支);然后點擊Reset按鈕
c. 這時你會發現,最新版本有回到newVersion。但是代碼還是oldVersion的代碼,這時候重push到遠程倉庫就不會版本沖突了
此方法代碼會回滾 但是分支不會
7. 方法一vs方法二
方法一會將回退的提交記錄抹點,而方法二會保留