前言
使用idea軟件操作git非常人性化和方便。
但是如果我的代碼使用git提交之后,我想回到以前的版本,此時需要進行git的版本回退。
提交代碼分為提交到緩存區、本地庫、遠程庫這3個過程。
下面我將介紹每個階段的提交對應的回退方法。
本篇文章是掌握git和使用idea操作git的基礎為前提的。
如果對使用idea軟件操作git的常用操作方法不熟練,請參考我以前的文章:
git的安裝和常用的命令-CSDN博客
git常用操作 --- idea編譯器 --- 公司實戰版-CSDN博客
用idea操作git分支合并 或者 只對自己的提交合并-CSDN博客
git提交時忽略指定文件 和 合并分支時忽略特定文件-CSDN博客
目錄
用idea操作git對緩存區代碼回退
?用idea操作git對本地庫代碼回退
第一種使用Undo Commit
Undo Commit回退的缺點
第二種使用Revert Commit
Revert Commit回退的缺點
用idea操作git對遠程庫代碼回退
用idea操作git對緩存區代碼回退
舉個例子
如果我要對在git緩存區的gitTest文件做一個回退,讓它退回到本地狀態
首先要打開這個gitTest文件,點擊右上角的回退鍵就把gitTest文件到本地狀態了
idea編譯器中,文件在git緩存區是綠色的,文件是在本地是紅色的
?
用idea操作git對本地庫代碼回退
在git本地庫但是沒有推送到遠程的代碼,回退到git緩存區有兩種方式
第一種使用Undo Commit
直接回退,就跟沒有發生過一樣
打開需要回退的代碼提交記錄,右鍵點擊Undo Commit
Undo Commit回退的缺點
????????只能回退最近一次的提交
第二種使用Revert Commit
本質上是進行了一次相反的代碼修改提交
舉個例子
我現在想把git測試4這次提交的本地庫代碼回退到緩存區
回退之后會出現一次回退的提交,可以對提交記錄的任意一條進行回退,因為中間的提交記錄肯定和后面的提交記錄有聯系,一半不要嘗試,因為代碼都是循序漸進寫的,這樣孤零零的回退中間一條記錄肯定會出現代碼沖突的,一旦代碼沖突后面非常麻煩,所以不要輕易嘗試喲
Revert Commit回退的缺點
????????本質上還是一次提交,只是對代碼進行了相反的提交,嚴格來說不是真正的回退,而且這樣回退之后一定要提交一次的,因為git上面有記錄了,后續再進行Revert Commit回退有可能出現報錯
用idea操作git對遠程庫代碼回退
遠程庫代碼是本質上是不能回退的
但是可以巧妙的時候Revert Commit回退的特點,對代碼再做一次相反的提交并推送到遠程庫從而實現遠程庫代碼回退的效果
舉個例子
回退 git測試3 這次提交,這次提交是已經推送到遠程庫了
首先使用Revert Commit進行代碼的回退,就是再提交一次把 git測試3 這次提交的代碼修改回去,只不過是使用Revert Commit進行一鍵修改了
點擊之后此時出現一次和? git測試3提交記錄? ?相反的提交
然后把這次相反的提交同步到遠程倉庫,從而實現遠程倉庫對git測試3這次提交的代碼還原