2011-08-06 77 views
10

git newbie在這裏,如果這是微不足道的。我在目前看到的一些git基本文檔中找不到這個。「git add」後文件的後續更改

我做了一個「git add file1」,將文件放入索引。緊隨此之後,「git diff --cahced」顯示正確的差異內容。

然後我對file1做了一些更改。現在,「git diff --cached」顯示先前顯示的差異內容,並且未顯示新的更改。這讓我相信,當我執行「git add」時,換句話說,當我執行文件時,索引具有file1內容的快照。

這是正確的嗎?隨後的提交只會提交「git diff --cached」向我展示的內容,或者我的所有更改直到提交發布爲止?

+0

我在工作時,當我注意到這一點,並計劃通過wkend從文檔中澄清自己。下次會嘗試。 –

回答

5

這就是索引的全部內容 - 它包含要提交的更改。如果您不使用-a,則git commit將創建一個提交,其內容(樹)將成爲索引中的內容。

git add所做的就是將工作副本中的文件(或目錄)複製到索引中。

有用的一種方法是git add -p:它可以讓您看到對文件的更改,並只添加您選擇到索引的更改的文件版本。

+2

「git add做的是複製文件」 - 啊,我對'git add'的想法是它將文件添加到要提交的文件列表中。感謝您的澄清!現在,我可以更好地瞭解工作區域與分段區域。 –