當前的repo裡存在的一定是最新提交的版本,可要是想檢視以前提交的版本呢,或是想回到以前提交的版本呢?
或者說,我想檢視每次提交的資訊該怎麼辦呢?
使用命令 :
$ git log
並可以檢視提交的日誌資訊,主要內容包含,版本(提交)編號、提交者資訊、提交日期、提交的注釋(從上到下)。
當然,一般來說其中最重要的資訊是:版本編號(其中有head標識的就是當前版本)、提交的注釋。
因為檢視日誌資訊的目的一般都是選擇回退到某個版本,或是檢視各個版本的提交內容,其中注釋會給出每次提交內容的概述,版本號可用於回退到指定的版本。
所以,還可以通過為上面的命令新增引數,顯示出較為簡潔的資訊:
$ git log --pretty=online
ok,通過上面的指令,現在我們就能獲取乙個庫的版本提交日誌了,通過日誌的資訊,就可以進行版本回退了。
(1)通過head指標
從解決思路中,可以發現,在日誌資訊中,有__head__標識的就是當前版本,因此這裡有個通過head指標快速進行版本回退的方法,使用如下:
回退到上個版本:
$ git reset --hard head^
回退到上上個版本:
$ git reset --hard head^^
可以發現,每往前乙個版本head頭上就多了乙個**^,這就是利用head**指標快速回退的方法。
(2)通過版本號
從日誌中,我們可以獲取每個版本的版本號,所以可以通過下面的命令
$ git reset --hard 版本號
進行版本回退,其中版本號不需要全部填寫,只要填前幾位可以確保指定版本的唯一性即可。
(1)在進行版本回退過後,這時候檢視
$ git log
就會發現,在現在版本之後提交的版本的日誌資訊都消失了,這時候如果再想回到回退前的版本就要使用命令:
$ git reflog
會顯示出所有命令的日誌資訊,就是記錄你每一條命令的日誌。所以可以通過命令日誌裡的資訊再次回到**「未來」的版本。**
(2)reset中的引數問題
在執行$ git reset --hard head^
此類命令時,–hard這個引數不能少,如果沒有這個引數直接:
$ git reset head^
那麼完成的操作是回到指定版本提交後的狀態,舉個例子:
現在版本1中有個檔案test_1.txt,你對它進行修改,然後
git add test_1.txt
git commit -m"版本2"
那麼此時的版本就是版本2了,接著你 git reset head^
你會發現,test_1.txt中的內容並沒有發生改變,此時只是相當於撤銷了前面的git add 和 git commit指令,回到了版本1未進行任何操作的狀態。
當新增了hard這個引數過後,才會將內容也變為指定的版本。
第三章Git使用入門
通過對本章的閱讀,我主要學到的是如何安裝git以及源 的提取與獲取。在使用git之前首先應該安裝git。很多linux系統已經帶了git。如果linux系統沒有安裝git,可使用下面的方法來安裝git的最新版本。ubuntu linux10.10 m erick 或更新的版本,可以使用下面的命令來安...
第三章 堆疊
1.基礎知識 堆疊可以實現很多的應用,遞迴的問題轉化成非遞迴形式,在本質上也是堆疊的問題.它是一種 filo 操作的資料結構,一般也有兩種儲存方式 陣列跟鍊錶實現形式,這裡我給出了鍊錶形式的堆疊模板,裡面包括了基本的堆疊所有的操作,還有兩個比較著名的應用例子,時間倉促,精力比較有限,關於迷宮老鼠還沒...
第三章 曙光
第三章 曙光 第二場校園招聘開始了。其實,洋對這個公司的不是很了解。因為前幾天突然在bbs上面看到了這個公司的招聘資訊,洋覺得這個公司不錯,就上網投了簡歷。接下來的乙個多小時,讓洋很震撼!想不到這個公司這個厲害,而且無論從哪方面來說,絕對不比之前的那個公司差。想不到自己的乙個不經意的決定到了這個大的...