Git索引
原文:?http://gitbook.liuhui998.com/7_4.html git中的索引(index)是一個(gè)存放了排好序的路徑的二進(jìn)制文件(通常是.git/index), 每一個(gè)條目都附帶有一個(gè)塊對(duì)象的SHA1值以及訪問權(quán)限; git ls-files可以顯示出索引的內(nèi)容: 0 ?踩0
?
$ git ls-files --stage 100644 63c918c667fa005ff12ad89437f2fdc80926e21c 0 ? .gitignore 100644 5529b198e8d14decbe4ad99db3f7fb632de0439d 0 ? .mailmap 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0 ? COPYING 100644 a37b2152bd26be2c2289e1f57a292534a51a93c7 0 ? Documentation/.gitignore 100644 fbefe9a45b00a54b58d94d06eca48b03d40a50e0 0 ? Documentation/Makefile ... 100644 2511aef8d89ab52be5ec6a5e46236b4b6bcd07ea 0 ? xdiff/xtypes.h 100644 2ade97b2574a9f77e7ae4002a4e07a6a38e46d07 0 ? xdiff/xutils.c 100644 d5de8292e05e7c36c4b68857c1cf9855e3d2f70a 0 ? xdiff/xutils.h 請(qǐng)注意, 在一些舊的文檔中, 索引可能被稱為"當(dāng)前目錄緩存(current directory cache)"或者"緩存(cache)". 索引(index)有三個(gè)重要的屬性: 1、索引存儲(chǔ)了生成一個(gè)(獨(dú)一無二的)樹對(duì)象所需要的所有信息. 例如, 運(yùn)行g(shù)it commit會(huì)從索引中生成一個(gè)樹對(duì)象, 把這個(gè)樹對(duì)象存儲(chǔ)在對(duì)象數(shù)據(jù)庫(object database)中, 然后把它與這個(gè)提交關(guān)聯(lián)起來. (譯注: 回憶"查看Git對(duì)象"一章, 每一個(gè)提交都對(duì)應(yīng)一個(gè)樹對(duì)象.) 2、索引使得對(duì)索引生成的樹對(duì)象和工作樹進(jìn)行快速比較成為可能. 索引通過存儲(chǔ)每個(gè)對(duì)象的一些額外信息(比如說最后修改時(shí)間)來完成這個(gè)工作. 這些數(shù)據(jù)沒有在上面顯示出來, 也沒有存儲(chǔ)在創(chuàng)建出來的樹對(duì)象中, 但是它們可以用于快速找出當(dāng)時(shí)工作目錄中的文件與索引的差異, 從而讓Git不必將文件的內(nèi)容全部讀出. 3、索引可以有效地表示樹對(duì)象合并時(shí)的沖突信息, 使得每一個(gè)路徑名都有足夠的信息與樹對(duì)象聯(lián)系起來, 從而可以對(duì)它們進(jìn)行三路合并. 在合并期間, 索引可能存儲(chǔ)一個(gè)文件的多個(gè)版本(稱為"stages"). 上面git ls-files的第三欄輸出就是stage號(hào). 在出現(xiàn)合并沖突時(shí), 這個(gè)號(hào)碼會(huì)是其他值, 而不是0. 因此索引實(shí)際上是一種暫存區(qū)域(temporary staging area), 它裝載了你正在使用的樹對(duì)象. 頂轉(zhuǎn)載于:https://www.cnblogs.com/xingzc/p/5987065.html
總結(jié)
- 上一篇: 怎么在苹果Mac虚拟机上安装Win7
- 下一篇: ORA-12541:TNS没有监听器