W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
我們可以借助類似于?git log 1a410e
?這樣的命令來瀏覽完整的提交歷史,但為了能遍歷那段歷史從而找到所有相關對象,你仍須記住?1a410e
?是最后一個提交。 我們需要一個文件來保存 SHA-1 值,并給文件起一個簡單的名字,然后用這個名字指針來替代原始的 SHA-1 值。
在 Git 里,這樣的文件被稱為“引用(references,或縮寫為 refs)”;你可以在?.git/refs
目錄下找到這類含有 SHA-1 值的文件。 在目前的項目中,這個目錄沒有包含任何文件,但它包含了一個簡單的目錄結構:
$ find .git/refs
.git/refs
.git/refs/heads
.git/refs/tags
$ find .git/refs -type f
若要創(chuàng)建一個新引用來幫助記憶最新提交所在的位置,從技術上講我們只需簡單地做如下操作:
$ echo "1a410efbd13591db07496601ebc7a059dd55cfe9" > .git/refs/heads/master
現在,你就可以在 Git 命令中使用這個剛創(chuàng)建的新引用來代替 SHA-1 值了:
$ git log --pretty=oneline master
1a410efbd13591db07496601ebc7a059dd55cfe9 third commit
cac0cab538b970a37ea1e769cbbde608743bc96d second commit
fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit
我們不提倡直接編輯引用文件。 如果想更新某個引用,Git 提供了一個更加安全的命令?update-ref
?來完成此事:
$ git update-ref refs/heads/master 1a410efbd13591db07496601ebc7a059dd55cfe9
這基本就是 Git 分支的本質:一個指向某一系列提交之首的指針或引用。 若想在第二個提交上創(chuàng)建一個分支,可以這么做:
$ git update-ref refs/heads/test cac0ca
這個分支將只包含從第二個提交開始往前追溯的記錄:
$ git log --pretty=oneline test
cac0cab538b970a37ea1e769cbbde608743bc96d second commit
fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit
至此,我們的 Git 數據庫從概念上看起來像這樣:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: