Git 版本回退

2022-09-28 09:27:07 字數 2832 閱讀 7740

git 中的撤銷操作,可以分為四類:

工作區的**想撤銷

add 到暫存區的**想撤銷

提交到本地倉庫的**想撤銷

遠端倉庫的**想撤銷

可以通過git checkout --命令來撤銷工作區的**修改。

首先執行了git status命令,發現工作區是乾淨的,然後執行了cat命令,發現檔案只有兩行內容,然後通過 vi 編輯器向檔案中新增一行,儲存並退出,退出來之後又執行了git status命令,此時工作區的狀態已經發生變化,然後執行了git checkout -- git01.txt命令,表示撤銷之前的操作,讓git01.txt恢復到之前的狀態,該命令執行成功後,再執行cat命令發現檔案內容已經恢復了,此時再執行git status命令,狀態也恢復了。

通過以下兩個步驟即可:

將暫存區的**撤銷到工作區;

將工作區的**撤銷(具體操作和 1.1 一樣)。

將暫存區的**撤銷,可以使用git reset head命令實現,如下:

核心過程就是先執行git reset head命令,從暫存區撤銷,然後參照 1.1 小節命令。

可以利用git reset --hard 《版本號》命令來實現版本回退,該命令中的版本號有幾種不同的寫法:

通過以下幾個步驟為例:

通過git log檢視當前提交日誌;

通過git reset --hard head^^向前回退兩個版本;

檢視日誌,發現最後一次提交的版本號是695ce1fe,利用git reset --hard 695ce1fe命令回退到之前的狀態;

通過git reset --hard head^回退到上乙個版本;

先在本地倉庫撤銷,然後 push 到遠端倉庫即可。

對於 第一小節基於命令列 的前兩種撤銷操作,即修改的檔案還沒 commit,此時想要撤銷,非常簡單,點選 idea 工具欄的撤銷按鈕即可。

如果修改了檔案,無論有沒有執行git add命令,只要沒有 commit,都可以通過撤銷按鈕來撤銷修改,點選該按鈕,彈出如下提示框:

這裡會列出來所有修改但是沒有 commit 的檔案,想要撤銷哪個檔案的修改,就勾選該檔案,然後點選 rollback 按鈕就完成了撤銷操作。

如果已經 commit 了,那麼就需要先開啟提交日誌,點選如下按鈕開啟:

也可以點選 idea 工具欄的時鐘圖示,快速開啟提交日誌:

提交日誌類似下面這樣:

此時的回退分情況,有兩種:

下面分別介紹兩種情況。

2.2.1 undo commit

這個操作只能在最近一次提交上使用,不能在其它提交上使用,最近一次提交上右鍵單擊,如下:

如果在其它的 commit 上單擊,如下:

既然如此,就來看看如何在最近一次提交上實現 undo commit。

在最近一次提交 commit 日誌上右鍵單擊選擇 undo commit,如下:

選中後,直接點選 ok,撤銷最近一次的 commit。撤銷之後,本地的修改相當於變成了已 add 但是未 commit 的狀態,此時可以繼續開發新**,然後再 commit,再 push。

2.2.2 revert commit

這個操作到處都能用,不同於 undo commit,revert commit 之後,會產生一條提交記錄。相當於 revert commit 其實也是一次提交,只不過提交的內容剛好相反,剛好刷掉已有內容。

revert commit 操作可以用在所有的提交日誌上,而不僅僅是最近一次的提交。

具體操作步驟如下:

找到需要回退的地方,右鍵點選,選擇 revert commit:

此時會彈出來乙個提交的對話方塊,就是乙個普通的 commit 對話方塊,如下:

commit 之後,可以看到內容已經撤銷了,提交日誌中也多了一條記錄,如下:

先在本地倉庫撤銷,撤銷完成後,重新修改**,最後再 push 即可。

Git版本回退

1 檢視檔案修改歷史 git log 返回的是commit後的操作記錄 git log pretty oneline 也可以使用這個命令格式化日誌輸出 2 版本回退 git reset hard head 回退到上乙個版本 git reset hard head 100 會退到第100個版本,例如現...

git版本回退

先說今天遇到的問題,看到乙個config.php的配置檔案一直在修改的狀態下,但是和遠端的config.php是不一致的,我不需要提交它,但是看它在 modified的狀態下,很不爽,想刪除它,git rm config.php,然後git push了下,結果不僅把本地的config.php乾掉了,...

git版本回退

把修改後的版本通過命令提交到版本庫 第一步 git add 檔名 字尾 第二步 git commit m commit id 但是有時候想回去怎麼辦呢?當然萬能的git給我們提供了方法的。我們先檢視一下最近到最遠的提交紀錄操作如下 在命令航輸入 git log 會顯示提交日誌,但是嫌輸出過多怎麼辦,...