我发现自己在每次提交前都会使用它。这样做是否正确?如果是,应该使用相同的命令...
有一个 git commit -a
命令,类似于 git add -u
-- 它会添加所有被修改的文件,但不包括未被跟踪的文件。与此相反的是 git add .
,它会添加所有被修改的追踪文件和未被跟踪的文件(不包括删除的文件)。
更多内容可以参考"git add -A" 和 "git add ." 之间的区别
在大多数工作流程中,你可以在执行 git commit
之前使用 git add
命令,或者直接使用 git commit -a
命令。
git add
让您可以将提交分成几个部分。如果您按照适当的大小提交,这通常是不必要的,但有时是不可避免的。
它还使您能够预览提交。当您使用git add
时,文件会被检入到本地索引中,该索引与您的工作目录分开。例如,当您使用gitk --all
时,您的索引将显示为任何其他提交节点,您可以像正常提交一样看到所有更改的影响,然后再将其实际提交到分支。
我发现git add -i
非常有用,它可以进入交互模式。您也可以使用git commit --interactive
。在这里,您可以逐个选择要添加的文件(甚至是要添加的文件的哪些部分),并逐个检查每个文件的差异。
如果您不想使用这些命令独立运行,那么没有理由要这样做,但保持命令彼此独立确实有其价值,因为它们执行不同的操作,有些人喜欢在不提交的情况下修改他们的工作索引。
在添加文件或解决冲突时使用此功能,如果仅更改文件、删除文件等操作则无需使用。
只有当你有新的文件不在源代码控制中时才使用git add。否则,在使用git commit时,好好利用-a开关即可。
当我认为一个文件已经准备好提交时,我使用 git add
命令,即使我知道我不会立即提交。除此之外,git diff
命令可以报告索引区(暂存区)中的内容与工作目录中的内容之间的差异。一旦你添加了一个文件,你就不会再看到它的差异,直到你再次修改它。因此,如果我有多个文件需要提交,我会逐个将它们添加到索引区,最终在所有更改的文件都准备好后进行提交。因此,我很少实际使用 git commit -a
命令。然而,每个人都有自己的做法。这两种方法都可以使用,而且 git
也不会强制任何人按照其要求工作(在一定范围内),相反,它让你按照自己的方式工作。