Git學習 版本回退

2021-08-10 19:45:55 字數 1312 閱讀 5707

我們可能對某乙個檔案提交過很多版本,我們想檢視所有的歷史版本,可以通過如下**進行檢視。

執行後,我們能夠看到所有的檔案所有提交過的歷史版本。所有版本按照時間倒序列出,從輸出結果能夠看到。該倉庫中提交過兩個版本,其中版本1寫了乙個readme的檔案,版本2在文末新增了gpl。我們還可以通過引數將輸出結果顯示更簡化:

在輸出結果1中,head表示的是最新的版本。

在檢視了所有的歷史版本後,我們可以回退到任何乙個版本。

git

reset--

hard

head^

其中head^表示的是回退到當前版本的前乙個版本,同理,head^^表示回退到當前版本的前兩個版本,也可以使用head~2表示head^^.

通過結果,我們可以看到版本已經回退到gpl那個版本。

實際上,版本控制系統對版本倉庫維護乙個單向的鍊錶,該鍊錶維護了所有的歷史版本。而head則是乙個指向最新版本的指標,reset命令則是修改了head指標所指向的版本節點。

當然,當回退到過去的歷史版本後,我們後悔對於這項修改,我們仍然可以恢復到最新的版本,只要我們記得commit id。例如在第一張中最新版本的id是67792b…,我們只需要指定前幾位即可。

可以看到,倉庫版本已經回退到上乙個版本。而這種情況我們是通過前文輸出的結果確定的id號。而如果電腦重啟,我們仍然能夠了解到id號。

git reflog
該命令會儲存我們對於該版本倉庫的所有提交命令。

從中能夠看到所有的提交命令,便可以執行上面的命令恢復到最新版本。

git學習 版本回退

像這樣,你不斷對檔案進行修改,然後不斷提交修改到版本庫里,就好比玩rpg遊戲時,每通過一關就會自動把遊戲狀態存檔,如果某一關沒過去,你還可以選擇讀取前一關的狀態。有些時候,在打boss之前,你會手動存檔,以便萬一打boss失敗了,可以從最近的地方重新開始。git也是一樣,每當你覺得檔案修改到一定程度...

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乾掉了,...