2015-12-08 53 views

回答

2

這裏的訣竅是,提交後指數不是爲空。

實際上,它包含了在提交之前和提交期間的確切內容。

我不確定這個概念來自哪裏。確實,git commit有一個拼寫爲--allow-empty的標誌,這可能使得它看起來像索引在這一點上是空的,但它是誤導標誌的拼寫:它允許的是空的diff,而不是空的提交

git add確實給索引添加了新的東西,但是在已經存在的文件的情況下,新增的東西只是取代已存在的舊條目。 (也許git add拼寫是什麼導致人們假設指數爲空,提交後?)

(另外一個稍微特殊一點是,git rm還增加了一句:具體而言,記錄說,「這個路徑 - 名字在HEAD提交中存在,應該不會在下一次提交中存在。「這是因爲索引扮演雙重角色:它不是只是」下一次提交什麼「,而且還有一個高速緩存你可以完全刪除索引文件,這會刪除所有東西,但不會安排任何刪除操作:在這種情況下,git只需重新構建HEAD提交的索引。)

+0

你說「我不確定這個概念來自哪裏」。我認爲這是來自這樣的陳述:「索引是你提出的下一個提交」(來自[這裏](https://git-scm.com/blog))。立即提交後,我沒有提出任何建議我的下一個提交,所以我希望該索引是空的。然而,這篇文章繼續解釋說:「Git使用最後檢出到工作目錄中的所有文件內容列表填充[索引],以及最初檢出時的樣子」 – dumbledad

相關問題