什么时候需要使用git add?

13

我发现自己在每次提交前都会使用它。这样做是否正确?如果是,应该使用相同的命令...

5个回答

14

有一个 git commit -a 命令,类似于 git add -u -- 它会添加所有被修改的文件,但不包括未被跟踪的文件。与此相反的是 git add .,它会添加所有被修改的追踪文件和未被跟踪的文件(不包括删除的文件)。

更多内容可以参考"git add -A" 和 "git add ." 之间的区别

在大多数工作流程中,你可以在执行 git commit 之前使用 git add 命令,或者直接使用 git commit -a 命令。


9

git add让您可以将提交分成几个部分。如果您按照适当的大小提交,这通常是不必要的,但有时是不可避免的。

它还使您能够预览提交。当您使用git add时,文件会被检入到本地索引中,该索引与您的工作目录分开。例如,当您使用gitk --all时,您的索引将显示为任何其他提交节点,您可以像正常提交一样看到所有更改的影响,然后再将其实际提交到分支。

我发现git add -i非常有用,它可以进入交互模式。您也可以使用git commit --interactive。在这里,您可以逐个选择要添加的文件(甚至是要添加的文件的哪些部分),并逐个检查每个文件的差异。

如果您不想使用这些命令独立运行,那么没有理由要这样做,但保持命令彼此独立确实有其价值,因为它们执行不同的操作,有些人喜欢在不提交的情况下修改他们的工作索引。


4

在添加文件或解决冲突时使用此功能,如果仅更改文件、删除文件等操作则无需使用。


3

只有当你有新的文件不在源代码控制中时才使用git add。否则,在使用git commit时,好好利用-a开关即可。


2
我不会点踩,但我认为那是可怕的建议。Git 的一个伟大特性就是索引/暂存区。我建议你好好利用它。 - camh
3
除非您不需要或不想要暂存区,否则它是必不可少的。当我需要时,它是必须的,但大多数情况下我只想提交。@Chris的建议很好。 - kubi

2

当我认为一个文件已经准备好提交时,我使用 git add 命令,即使我知道我不会立即提交。除此之外,git diff 命令可以报告索引区(暂存区)中的内容与工作目录中的内容之间的差异。一旦你添加了一个文件,你就不会再看到它的差异,直到你再次修改它。因此,如果我有多个文件需要提交,我会逐个将它们添加到索引区,最终在所有更改的文件都准备好后进行提交。因此,我很少实际使用 git commit -a 命令。然而,每个人都有自己的做法。这两种方法都可以使用,而且 git 也不会强制任何人按照其要求工作(在一定范围内),相反,它让你按照自己的方式工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接