Git References

2018-09-27 15:52 更新

你可以執(zhí)行像 git log 1a410e 這樣的命令來(lái)查看完整的歷史,但是這樣你就要記得 1a410e 是你最后一次提交,這樣才能在提交歷史中找到這些對(duì)象。你需要一個(gè)文件來(lái)用一個(gè)簡(jiǎn)單的名字來(lái)記錄這些 SHA-1 值,這樣你就可以用這些指針而不是原來(lái)的 SHA-1 值去檢索了。

在 Git 中,我們稱之為“引用”(references 或者 refs,譯者注)。你可以在 .git/refs 目錄下面找到這些包含 SHA-1 值的文件。在這個(gè)項(xiàng)目里,這個(gè)目錄還沒不包含任何文件,但是包含這樣一個(gè)簡(jiǎn)單的結(jié)構(gòu):

$ find .git/refs
.git/refs
.git/refs/heads
.git/refs/tags
$ find .git/refs -type f
$

如果想要?jiǎng)?chuàng)建一個(gè)新的引用幫助你記住最后一次提交,技術(shù)上你可以這樣做:

$ echo "1a410efbd13591db07496601ebc7a059dd55cfe9" > .git/refs/heads/master

現(xiàn)在,你就可以在 Git 命令中使用你剛才創(chuàng)建的引用而不是 SHA-1 值:

$ git log --pretty=oneline  master
1a410efbd13591db07496601ebc7a059dd55cfe9 third commit
cac0cab538b970a37ea1e769cbbde608743bc96d second commit
fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit

當(dāng)然,我們并不鼓勵(lì)你直接修改這些引用文件。如果你確實(shí)需要更新一個(gè)引用,Git 提供了一個(gè)安全的命令 update-ref:

$ git update-ref refs/heads/master 1a410efbd13591db07496601ebc7a059dd55cfe9

基本上 Git 中的一個(gè)分支其實(shí)就是一個(gè)指向某個(gè)工作版本一條 HEAD 記錄的指針或引用。你可以用這條命令創(chuàng)建一個(gè)指向第二次提交的分支:

$ git update-ref refs/heads/test cac0ca

這樣你的分支將會(huì)只包含那次提交以及之前的工作:

$ git log --pretty=oneline test
cac0cab538b970a37ea1e769cbbde608743bc96d second commit
fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit

現(xiàn)在,你的 Git 數(shù)據(jù)庫(kù)應(yīng)該看起來(lái)像圖 9-4 一樣。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)