工作中我們總會遇到代碼版本回退的問題,下面是我所總結的方法:
1)在show history 中找到當前版本(取名:newVersion)和想要回退到的版本(oldVersion)
2. 選擇newVersion和oldVersion點擊“Copy Revision Number”復制兩個版本的版本號:
newVersion:2746f428a3d3d000bd1b0e886ef8167e1f73ec9c
oldVersion :6bc5691cbe7304cb185b70fbc0dd975c7de86e8a
3. 右擊項目依次選中:Git->Repository->Reset HEAD
4. 選中Reset Type:*Hard, To Commit:6bc5691cbe7304cb185b70fbc0dd975c7de86e8a;然后點擊Reset按鈕
(這一步操作相當於項目下執行命令行git reset --hard {oldVersion})
5. 這時本地代碼已經回退到oldVersion,這時候如果直接push到遠程倉庫,會提示版本沖突,點擊“cancel”取消。
6. 下面有兩種解決沖突的方法
方法一 :不解決,直接強制提交:
a. 打開Terminal,切換到項目所在目錄
b. 執行:spring-mvc $git push -f
方法二:
a. 右擊項目依次選中:Git->Repository->Reset HEAD
b. 選中Reset Type:Mixed, To Commit:2746f428a3d3d000bd1b0e886ef8167e1f73ec9c;然后點擊Reset按鈕
c. 這時你會發現,最新版本有回到newVersion。但是代碼還是oldVersion的代碼,這時候重push到遠程倉庫就不會版本沖突了
7. 方法一vs方法二
方法一會將回退的提交記錄抹點,而方法二會保留
8. 如果想將回退的版本恢復,命令行
$gitreflog(查看記錄版本號)
$git reset --hard {newVersion}
查看本地 代碼已經恢復為最新版本,然后push本地最新版本到遠端