Git 版本及版本範圍表示法

2022-07-03 22:06:14 字數 1713 閱讀 4185

很多 git 命令都使用 revision(修訂版本)作為引數。根據不同的命令,有時候 revision 參 數代表乙個特定的提交,有時候代表某乙個提交可以追蹤到的所有的父提交(比如 git log)。在 後面的這種情況中,一般也可以提供乙個版本範圍作為引數。另外,有的命令(例如 git show) 使用 revision 引數代表其他物件,如 blobs 或者 tree 物件。

乙個 revision 引數  在通常情況下(但並不是所有情況下)代表乙個提交物件(commit)。 使用一種稱為 擴充套件 sha-1(extended sha-1)的語法。下面是各種各樣表示 revision 的語法。

下面是乙個圖示,展示了各個概念:

g   h   i   j

\ / \ /

d e f

\ | / \

\ | / |

\|/ |

b c

\ /

\ /a

a = = a^0

b = a^ = a^1 = a~1

c = a^2 = a^2

d = a^^ = a^1^1 = a~2

e = b^2 = a^^2

f = b^3 = a^^3

g = a^^^ = a^1^1^1 = a~3

h = d^2 = b^^2 = a^^^2 = a~2^2

i = f^ = b^3^ = a^^3^

j = f^2 = b^3^2 = a^^3^2

那些需要遍歷歷史提交的命令(如 git log)會對一系列的提交進行操作,而不是僅僅針對某一次提交。 對於這些命令來說,如果只給它們提供乙個 revision 引數,那麼意思是指代沿著該 revision 的父提 交鏈可以追蹤到的所有提交。

如果要排除從某一次提交可以追蹤到的提交,只需要在該提交的前面加上字首^。例如:^r1 r2指代從 r2 可以追蹤到的所有提交但是不包含從 r1 可以追蹤到的所有提交。這種表示 方法非常常見,因此對於^r1 r2來說有乙個簡寫表示法:r1..r2(注意:r1 與 r2 之間只有 兩個英文句點)。可以省略乙個 revision,省略的 revision 預設是 head。

相似的表示法:r1...r2可以叫做 r1 和 r2 之間的差集(數學),就是指代從 r1 可以追蹤到的提 交或者是從 r2 可以追蹤到的提交,但是不包含從 r1 和 r2 都可以追蹤到的。

下面是一些例子:

d                g h d

d f g h i j d f

^g d h d

^d b e i j f b

b..c c

b...c g h d e b c

^d b c e i j f b c

c i j f c

c^@ i j f

c^! c

f^! d g h d f

git 檢視歷史版本及回滾版本

檢視歷史提交版本 1.git log 檢視歷史所有版本資訊 2.git log x 檢視最新的x個版本資訊 3.git log x filename檢視某個檔案filename最新的x個版本資訊 需要進入該檔案所在目錄 4.git log pretty oneline檢視歷史所有版本資訊,只包含版本...

Git安裝及建立版本庫

sudo apt get install git 一是安裝homebrew,然後通過homebrew安裝git msysgit是windows版的git,從 安裝完成後,還需要最後一步設定,在命令列輸入 git config global user.name your name git config...

git 恢復版本

git log file 檢視版本號 git reset hard d756f627fe568f4d8bcf1852ba60557eeab477a5 版本號 首先,在確認需要進行版本還原以後,開啟git bash 輸入 例如 git reset hard d756f627fe568f4d8bcf18...