我做了一个“git add file1”,它将文件放入索引中。紧接着之后,“git diff --cahced”显示正确的差异内容。
然后我对file1做了一些更改。现在,“git diff --cached”显示先前显示的差异内容,并且未显示新的更改。这让我相信当我执行“git add”时,索引正在获取file1内容的快照,换句话说,当我暂存文件时。
这是对的吗?并且后续提交只会提交“git diff --cached”向我显示的内容,或者我的所有更改,直到提交发布为止?
答案 0 :(得分:5)
这是索引的全部要点 - 它包含要提交的更改。如果您不使用-a
,git commit
将创建一个提交,其内容(树)将是索引中的内容。
git add
的作用是将文件(或目录)从工作副本复制到索引中。
这有用的一种方法是git add -p
:它允许您查看对文件的更改,并添加文件版本,只更改您选择的索引。