2012-08-27 33 views
15

書臨的Git說,臨時區域只是一個表或索引,上面寫着這當git commit完成的文件將被提交,現在的名稱index更常被稱爲「臨時區域」。Git暫存區只是一個索引?

但是,如果我們修改該文件foo.txt那已經是回購協議的一部分,並使用git add foo.txt到舞臺後,再重新修改文件,現在文件都「上演」和「修改」(如git status看到) ,如果我們提交,「已上演」版本將進入提交。第二編輯不會去

因此,如何能在「臨時區域」跟蹤哪些第一次編輯是,如果它僅僅是一個指標 - 文件列表?

回答

10

指數是你的工作目錄的一個觀點,即是準備提交。它可以被看作是預先提交的狀態,並不像「文件列表」那麼簡單。當你做git add,該文件(的變化)被添加到索引和新的更改將不會看到,直到你把他們加入。

3

index就像是一個out basket完成的工作。在任何時候你都可以add一個(部分)完成文件到出庫並且它會用你當前的副本替換以前的副本,這樣當你最終決定到commit它會使用那個內容出庫(當前index)創建提交。

除了你剛纔add將創建可如果通過各種日誌需要找到回購內的blob對象。過了一段時間(30天+)後,它將消失gc

+0

我喜歡你的例子與**出籃子**,但你沒有提及如何相關的分期 –

+1

@EthanDavis的分期,大部分是,相同的索引。差異更多的是角度。 Staging區域是用戶的概念視圖,而Index則更像是Git開發人員的視角(他們保留「暫存區域」中的內容列表)。 Git有許多由(和爲)開發人員命名的東西,然後被用戶誤解;-) –