当您修改工作目录中的文件时,git会告诉您使用“git add”进行暂存。
当您将新文件添加到工作目录时,git会告诉您使用“git add”来开始跟踪。
我对这两个概念感到有点困惑,因为我假设跟踪文件的更改与提交它的提交不同
答案 0 :(得分:26)
Git在本地仓库中基本上有4种主要状态:
git add <file>
,则变为:git commit
,则变为:git add
如您所见,git add
将跟踪未跟踪的文件,阶段任何文件。
另外:您可以使用git rm --cached filename
取消删除未提交的文件,并使用git reset HEAD <file>
答案 1 :(得分:14)
Git有一个被称为“索引”的概念。要创建新提交,请使用您希望在下次提交时拥有的内容填充索引。这意味着您必须使用git add
明确告诉Git您希望在下一次提交中出现哪些更改。 (git add -p
只添加单身帅哥)
Git是否只更新文件(»stage changes«)或添加新文件的全部内容(»开始跟踪文件«) - 两次都是Git的,这对Git没有任何影响。 index see是添加了新的更改
答案 2 :(得分:8)
当您添加文件以开始跟踪时,它还会分段其内容。
如果要添加文件以进行跟踪而不进行暂存,可以使用
git add -N
答案 3 :(得分:1)
您识别的两个git add
步骤基本上都是相同的,因为它们的到达途径只是有不同的解释。
git add
只是告诉git所提供的文件是您希望拥有的文件,在其源控制存储库中以其当前的形式(其内容)。此时,git将获取文件的快照(并在其索引中保留一个注释),以便在您准备好并添加对文件的所有更改(即在暂存区域中编组在一起)时,它已准备就绪,你的git commit
(带有适当的信息; - )。
一旦git被告知该文件(例如@ avh的-N
选项),它将在各种命令(例如git status
)的幌子下注意到(跟踪)对文件的更改。因此,稍后,当您不再需要跟踪文件(git rm <file>
)时,必须明确告诉git,并且在add
版本之后可以继续编辑文件(本地)将在提交中。几乎显然(或许不是),您可以在提交最终版本之前多次git add
一个文件。