(1)git reset 操作,這個回退適合本地回退,還沒有push到遠程倉庫
準備,從git pull 一個項目,新建v1.txt,提交push ,v2.txt 提交push ,現在又v1 和 v2 兩個文件
新建一個v3 的文件,add ,並commit
測試一,現在項回退一個版本,即沒有v3 的版本
git log 查看日誌,
太亂了,按q退出, 加參數 git log --pretty=oneline
回退到指定的版本號這裏是2ea8這個 ,git reset --hard 2ea83c74,再次查看可以看到已經回退過去了
當然也可以用
git reset --hard HEAD^ 來回退
在Git中,用HEAD
表示當前版本,也就是最新的提交1094adb...
(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^
,上上一個版本就是HEAD^^
,當然往上100個版本寫100個^
比較容易數不過來,所以寫成HEAD~100
想恢復到v3 用 git reflog查看你的每一次提交記錄,找到commitId,然後會退就行了
注意:這裏的回退僅限於本地回退,如果你的代碼已經push 到遠程倉庫了,這時候不能用這種方式,因爲這時候本地版本是低於遠程版本的,強制提交,會覆蓋掉其他同事的代碼,而且會有一大堆衝突
(2) git revert 命令恢復
參考 https://blog.csdn.net/yxlshk/article/details/79944535,寫的很好