學會了版本庫的創建後再需要的就是學習版本管理,本文學習版本回退和版本前進。
版本回退
-
在git-bash命令行裏使用gitk命令查看可視化的版本情況:
根據圖中描述可知,只有一次提交記錄,所處分支爲master分支,與遠程github中的origin倉庫是關聯在一起的,新增的內容爲ReadMe.txt中的“first use github”。 -
爲了達到版本回退的目的,需要在之前的本地倉庫中新增內容,爲了簡便,僅在ReadMe.txt文件中添加新內容,命令操作如下:
此時,ReadMe.txt中有兩行內容,接下來執行一次git commit -a(添加並提交)操作提交修改:
再次使用gitk查看提交情況,如下圖:
第二次的提交描述了master分支修改了ReadMe.txt文件,新增內容爲“second use github”。
同樣的方式再添加一些新內容到ReadMe.txt並提交到本地倉庫:
並通過git log命令查看提交日誌:
結果顯示有三次提交記錄,和我們實際操作的也是一致的。 -
使用git reset --hard HEAD^回退到上一個版本,並使用git log查看記錄,其git reset可選參數如下:
- git reset (–mixed) HEAD~1
回退一個版本,且會將暫存區的內容和本地已提交的內容全部恢復到未暫存的狀態,不影響原來本地文件(未提交的也 不受影響) 。 - git reset –soft HEAD~1
回退一個版本,不清空暫存區,將已提交的內容恢復到暫存區,不影響原來本地的文件(未提交的也不受影響) 。 - git reset –hard HEAD~1
回退一個版本,清空暫存區,將已提交的內容的版本恢復到本地,本地的文件也將被恢復的版本替換。 - HEAD~1中的數字表示回退的版本個數,也可使用HEAD^表示回退一個版本。
- git reset (–mixed) HEAD~1
版本庫:commit操作後。
暫存區:add操作後。
工作區:add操作前。
命令行操作如下:
記錄顯示目前僅有兩次提交記錄,且分支所處位置爲第二次提交後,因爲使用的是hard選項,所以文件內容也會發生相應改變,故查看文件內容也爲第二次提交後,使用gitk查看也是一致的,說明已經成功回退一個版本。
- 使用git log --oneline --graph --all單行顯示所有提交記錄,操作如下:
版本前進
- 使用git reflog查看版本之間的變化情況,操作如圖:
可以看到總共有6條操作記錄,包括提交記錄和回退記錄,最後一次記錄是回退到commit id爲f0e61f3所在的版本,因此,版本前進使用git reset --hard commit id達到目的,操作如下:
可以看到,當前分支已指向commit id爲0be328d所在的版本,且工作區的內容也發生改變。