【发布时间】:2011-04-10 01:37:27
【问题描述】:
我发现自己每次在提交之前都在使用它。这样对吗?如果是的话,应该是同一个命令……
【问题讨论】:
标签: git
我发现自己每次在提交之前都在使用它。这样对吗?如果是的话,应该是同一个命令……
【问题讨论】:
标签: git
git commit -a 类似于 git add -u -- 它会添加所有已修改的文件,但不会添加未跟踪的文件,而 git add . 会添加已跟踪和未跟踪的文件(不包括删除),前提是它们包含修改。
见Difference between "git add -A" and "git add ."
但是是的,在大多数工作流程中,您要么在 git commit 之前使用 git add,要么主要使用 git commit -a。
【讨论】:
git add 可让您分段提交提交。如果您以适当大小的块提交,这并不总是必要的,但有时这是不可避免的。
它还可以预览提交。当您使用git add 时,这些文件将签入您的本地索引,该索引与您的工作目录是分开的。例如,当您随后使用gitk --all 时,您的索引将显示为任何其他提交节点,并且您可以在将其实际提交到分支之前,像普通提交一样查看所有更改的效果。
我觉得非常有用的是git add -i,它进入了交互模式。您也可以使用git commit --interactive。在这里,您可以逐个选择要添加的文件(甚至要添加对文件的哪些更改),检查每个文件的差异。
如果您不想单独使用这些命令,则没有理由,但是保持命令彼此独立肯定是有好处的,因为它们做不同的事情,而且有些人喜欢能够在不提交的情况下修改他们的工作索引.
【讨论】:
在您添加文件或解决冲突时使用它。如果您只是更改文件、删除文件或类似性质的事情,则不需要使用它。
【讨论】:
当我认为文件已准备好提交时,我使用git add,即使我知道要等到一段时间后才会提交。除此之外,git diff 报告索引(暂存区)中的内容与工作目录中的内容之间的差异。添加文件后,在再次修改之前不会看到其中的差异。因此,如果我有许多文件,我将它们零碎地添加到索引中,最后在所有更改的文件都准备好时提交。因此,我很少实际使用git commit -a。不过,各有各的。这两种方法都有效,git 很友好,不会强迫任何人按照自己想要的方式工作(在限制范围内)——相反,它可以让你按照自己想要的方式工作。
【讨论】:
仅当您有不在源代码管理中的新文件时才使用 git add。否则,只需在使用 git commit 时善用 -a 开关即可。
【讨论】: