在 git add 后面可以指明要跟蹤的文件或目錄路徑。如果是目錄的話,就說明要遞歸跟蹤該目錄下的所有文件。(其實(shí) git add 的潛臺(tái)詞就是把目標(biāo)文件快照放入暫存區(qū)域,也就是 add file into staged area,同時(shí)未曾跟蹤過的文件標(biāo)記為需要跟蹤。這樣就好理解后續(xù) add 操作的實(shí)際意義了。)
暫存操作會(huì)對(duì)每一個(gè)文件計(jì)算校驗(yàn)和(即第一章中提到的 SHA-1 哈希字串),然后把當(dāng)前版本的文件快照保存到 Git 倉庫中(Git 使用 blob 類型的對(duì)象存儲(chǔ)這些快照),并將校驗(yàn)和加入暫存區(qū)域。
當(dāng)在執(zhí)行git add命令時(shí)候
- 如果文件在工作區(qū)域已被跟蹤,那么直接將文件快照保存至?xí)捍鎱^(qū)。
- 如果文件在工作區(qū)域未被跟蹤,那么先將文件標(biāo)識(shí)為跟蹤文件,然后再將文件快照保存保存至?xí)捍鎱^(qū)。