前言
當我們用 pycharm 提交代碼的時候,每天都要 commit 提交的內容,有時候發現后面寫的代碼還不如前兩天的穩定。
這時候想把代碼回退到某次 commit 提交,可以使用git的 reset 功能實現。
reset 回滾有三種類型:
- Mixed 此為默認方式 回退一個版本,且會將暫存區的內容和本地已提交的內容全部恢復到未暫存的狀態,不影響原來本地文件(未提交的也不受影響)
- soft 回退一個版本,不清空暫存區,將已提交的內容恢復到暫存區,不影響原來本地的文件(未提交的也不受影響)
- hard 回退一個版本,清空暫存區,將已提交的內容的版本恢復到本地,本地的文件也將被恢復的版本替換
Show History
打開pycharm-VCS-Git-Show History 查看 commit 提交記錄。
可以看到上一次的提交是昨天晚上的記錄,我想回退到3月7號的這次 commit 的代碼上, commit的提交內容是fz。
先記住commit提交的id,也就是第一列顯示的"916929a"
Reset HEAD
打開pycharm-VCS-Git-Reset HEAD 回滾當前的分支yoyoketang
Reset Type類型有三種,默認Mixed:
- Mixed 此為默認方式 回退一個版本,且會將暫存區的內容和本地已提交的內容全部恢復到未暫存的狀態,不影響原來本地文件(未提交的也不受影響)
- soft 回退一個版本,不清空暫存區,將已提交的內容恢復到暫存區,不影響原來本地的文件(未提交的也不受影響)
- hard 回退一個版本,清空暫存區,將已提交的內容的版本恢復到本地,本地的文件也將被恢復的版本替換
To Commit 輸入框輸入commit id,也就是"916929a",這里選擇默認的Mixed回滾類型。
回滾之前可以先點下 Validate
按鈕確定下有沒這個commit id
點Reset 之后就可以回滾成功啦
恢復到最新的
前面已經回滾到3月7號的commit這次提交的內容上,如果我們又想回到最新的代碼,可以查看commit log記錄查看到commit id為"2932c8c"
打開pycharm-VCS-Git-Show History 查看 commit 提交記錄-點log切換
VCS-Git-Reset HEAD - To Commit 輸入框輸入commit id,也就是"2932c8c",這樣就回到最新的代碼了。
Reset hard
前面 Reset HEAD 時候用默認是Mixed會發現上次提交的代碼test_yoyoketang.py文件還在,變成了紅色,如果想徹底回到上次的commit,
后面寫的代碼都不要,Reset Type類型就選hard(慎重選擇,要不然后面寫的本地代碼都找不到了)
點Reset 之后就可以完全回到上次的代碼了