还有git commit -a是喜欢 git add -u -它增加了所有修改过的文件,但它不添加未经跟踪的文件,相反git add .,它增加了两个跟踪和未跟踪文件(不包括删除),只要它们包含修改.
请参阅"git add -A"和"git add"之间的区别.
但是,是的,在大多数工作流程中,您将git add在您之前git commit,或者您将主要使用git commit -a.
git add让您分阶段进行提交。如果您以适当大小的块提交,这并不总是必要的,但有时这是不可避免的。
它还可以预览提交。当您使用git add这些文件时,这些文件会被签入到您的本地索引中,该索引与您的工作目录是分开的。gitk --all例如,当您然后使用 时,您的索引将显示为任何其他提交节点,并且您可以像正常提交一样查看所有更改的效果,然后再将其实际提交到分支。
我发现非常有用的是git add -i,它进入交互模式。您也可以使用git commit --interactive. 在这里,您可以逐个选择要添加的文件(甚至要添加对文件的哪些更改),并检查每个文件的差异。
如果您不想,没有理由独立使用这些命令,但保持这些命令相互独立肯定是有好处的,因为它们做不同的事情,而且有些人喜欢能够在不提交的情况下修改他们的工作索引。