第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

git索引到底包含什么?

git索引到底包含什么?

Git
慕的地10843 2019-07-13 09:43:39
git索引到底包含什么?Git索引到底包含什么,我可以使用什么命令來(lái)查看索引的內(nèi)容?更新謝謝你的回答。我知道索引充當(dāng)一個(gè)分階段區(qū)域,提交的內(nèi)容是在索引中而不是在工作樹中。我只是好奇索引對(duì)象是由什么組成的。我想可能是一個(gè)文件名/目錄名的列表,SHA-1對(duì),可能是一種虛擬樹?用Git術(shù)語(yǔ)來(lái)說(shuō),有沒有管道命令,可以用來(lái)列出索引的內(nèi)容嗎?
查看完整描述

3 回答

?
狐的傳說(shuō)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

Git書中有一篇關(guān)于索引包括什么?:

索引是一個(gè)二進(jìn)制文件(通常保存在.git/index)包含一個(gè)排序的路徑名稱列表,每個(gè)路徑名稱都具有權(quán)限和BLOB對(duì)象的SHA 1;git ls-files可以顯示索引的內(nèi)容:

$ git ls-files --stage
100644 63c918c667fa005ff12ad89437f2fdc80926e21c 0   .gitignore
100644 5529b198e8d14decbe4ad99db3f7fb632de0439d 0   .mailmap

這個(gè)活潑的Git問(wèn)題給出了關(guān)于該結(jié)構(gòu)的更多細(xì)節(jié):

索引是GIT中最重要的數(shù)據(jù)結(jié)構(gòu)之一。
它通過(guò)記錄路徑及其對(duì)象名稱的列表來(lái)表示虛擬工作樹狀態(tài),并充當(dāng)一個(gè)臨時(shí)區(qū)域來(lái)寫出要提交的下一個(gè)樹對(duì)象。
狀態(tài)是“虛擬的”,因?yàn)樗灰欢ㄒ?,而且通常不匹配工作樹中的文件?/trans>


想看更多,參考文獻(xiàn)?!?/trans>git/Documentation/technical/index-format.txt":

Git索引文件具有以下格式

所有二進(jìn)制數(shù)字都是按網(wǎng)絡(luò)字節(jié)順序排列的。
第2版在此說(shuō)明,除非另有說(shuō)明。

  • 由以下內(nèi)容組成的12字節(jié)頭:
    • 4字節(jié)

      簽名:

      簽名是{‘

      D', 'I', 'R', 'C

      )(代表“

      dircache")

    • 4字節(jié)

      版本號(hào):

      當(dāng)前支持的版本是2、3和4。
    • 索引條目的32位數(shù)。
  • 若干排序

    索引條目.

  • 擴(kuò)展:

    擴(kuò)展是通過(guò)簽名標(biāo)識(shí)的。


    如果Git不理解它們,則可以忽略可選擴(kuò)展。


    GIT目前支持緩存樹和解析撤消擴(kuò)展。
    • 4字節(jié)擴(kuò)展簽名。如果第一個(gè)字節(jié)是‘

      A'..'Z

      ‘?dāng)U展是可選的,可以忽略。
    • 擴(kuò)展的32位大小
    • 擴(kuò)展數(shù)據(jù)
  • 在此校驗(yàn)和之前,160位SHA-1超過(guò)索引文件的內(nèi)容.

mljrg 評(píng)論意見:

如果索引是準(zhǔn)備下一次提交的地方,為什么沒有“git ls-files -s“提交后什么也不歸還?

因?yàn)?/trans>索引表示正在跟蹤的內(nèi)容。,在提交之后,正在跟蹤的內(nèi)容與最后一次提交相同(git diff --cached什么也不回)。

所以git ls-files -s列出跟蹤的所有文件(輸出中的對(duì)象名稱、模式位和階段號(hào))。

這個(gè)列表(跟蹤的元素)是用提交的內(nèi)容初始化的。
切換分支時(shí),索引內(nèi)容將重置為剛剛切換到的分支引用的提交。


GIT2.20(2018年Q4)增加了一個(gè)索引項(xiàng)偏移表(IEOT):

看見提交77f 112承諾3255089提交abb4bb8提交c 780b9c提交3b1d9e0承諾371 ed0d(2018年10月10日)本·皮爾特benpeart).
看見提交252 d079(2018年9月26日)?n Thái Ng?c Duy(pclouds).
(合并為Junio C Hamano-gitster --在……里面提交e27bfaa,2018年10月19日)

增加索引條目偏移表(IEOT)擴(kuò)展

此修補(bǔ)程序通過(guò)向索引中添加額外的數(shù)據(jù)來(lái)解決加載索引的CPU成本,這將使我們能夠高效地多線程加載和轉(zhuǎn)換緩存條目。

它通過(guò)向索引文件中的緩存條目塊添加一個(gè)(可選的)索引擴(kuò)展來(lái)實(shí)現(xiàn)這一點(diǎn)。

為了實(shí)現(xiàn)V4索引的工作,在編寫緩存條目時(shí),它會(huì)周期性地“重置”前綴-通過(guò)對(duì)當(dāng)前條目進(jìn)行編碼來(lái)進(jìn)行壓縮,就好像前面條目的路徑名稱完全不同一樣,并將該條目的偏移量保存在IEOT中。
基本上,使用V4索引,它會(huì)將偏移生成前綴壓縮條目塊.

帶著新的index.linesconfig設(shè)置,索引加載速度更快。


因此(使用IEOT), 提交7bd9631清理read-cache.c load_cache_entries_threaded()Git 2.23(Q3 2019)的職能。

看見承諾8373037提交d713e88提交d 92349d承諾113 c29a提交c95fc72提交7a2a721提交C 016579提交為27fb7實(shí)施13a1781提交7bd9631提交3c1dce8提交cf7a901提交d64db5b提交76a7bc0(2019年5月9日)杰夫·金(peff).
(合并為Junio C Hamano-gitster --在……里面提交c0e78f7,2019年6月13日)

讀取-緩存:從線程加載中刪除未使用的參數(shù)。

這個(gè)load_cache_entries_threaded()函數(shù)采用src_offset參數(shù)不使用的參數(shù)。它自成立以來(lái)就一直存在。77ff112 (read-cache:在工作線程上加載緩存條目,2018-10-10,Git v2.20.0-rc0)。

深入了解郵件列表,該參數(shù)是系列的早期迭代,但是當(dāng)代碼切換到使用IEOT擴(kuò)展時(shí),就變得沒有必要了。


查看完整回答
反對(duì) 回復(fù) 2019-07-13
  • 3 回答
  • 0 關(guān)注
  • 712 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)