v2還原到v1
1、強制還原(git reset)
如果使用這種方式還原到v1,將丟失還原到v1到v2之間的所有提交及日志。
1.1顯示日志
有save1、save2兩條提交記錄。
1.2 重置版本(本地分支還原)
使用硬重置,否則重置后,還會有未提交的文件。重置到save1版本。
1.3 提交(推送到遠程分支)
因為我們本地庫版本比遠程庫版本低,需要強制推送
1.4 缺點
這種方式回退代碼的弊端顯而易見,那就是會使 HEAD 指針往回移動,從而會失去之后的提交信息。將來如果突然發現,save2 的代碼是有用的,但是已經找不回來了。
2、溫和還原(checkout)
為保留v1-v2的提交和歷史記錄,可以使用該方式。
2.1導出還原版本(v1)
2.2 提交還原版本(v1)
將導出的版本作為新版本v3提交。
3、溫和還原(git revert)
git revert的作用通過反做創建一個新的版本,這個版本的內容與我們要回退到的目標版本一樣,但是HEAD指針是指向這個新生成的版本,而不是目標版本。
3.1 顯示日志
每次提交創建一個類,分別為Test1、Test2、Test3。
3.2 還原此版本做出的變更
還原Test2版本
還原后,test2版本提交的代碼被取消了(即Test2類被刪除了)。
3.3 提交
可以將修改代碼提交到遠程
查看日志,以前的提交記錄沒有丟失,最新的為剛提交版本。