'git add .'('git add' 后面跟一个点号)命令是做什么的?

85

我不理解使用句点(或者句号、单个点)将文件添加到暂存区的 Git 命令的含义:

$ git add .

这是做什么用的?


1
git add . 中的句点表示当前目录及其所有子目录中的所有文件。 (另一方面,在 git add * 中的星号表示当前目录中除了以句点开头的文件之外的所有文件。) - nCardot
4个回答

99

git add . 命令会添加并暂存当前目录下的所有文件。这是为了方便,但如果您有某些不想添加的文件,则可以使用 .gitignore

有关 .gitignore 的教程,请查看此处

如果您想更好地控制如何添加所有文件或想了解 git add . 如何工作,可以参考此处关于 git add . vs git add -A vs. git add -u 的深入讨论,它可能会回答您的问题。


1
git add . 是递归的还是非递归的?@agconti - Adrián Jaramillo
是的,git add . 会添加包含在父目录和子目录中的所有文件。 - Robin

36

git add . 命令会将当前目录及其子目录中所有修改和新增(未跟踪)的文件添加到暂存区(也称为索引),从而准备将它们包含在下一个 git commit 中。

.gitignore 文件中匹配模式的任何文件都将被 git add 忽略。

如果您想跳过git add . 步骤,可以只需将 -a 标志添加到 git commit 中(但这将包括所有已修改的文件,而不仅限于当前目录和子目录中的文件)。

请注意,git add . 不会对已删除的文件进行任何操作。要将删除的文件包含在索引(和即将提交的内容)中,您需要执行 git add -A 命令。


4

它会将你进行了更改的所有后续资源(在该文件夹下)添加到Git的版本控制中进行提交。

你应该从这个出色的步骤学习Git: 学习Git的资源


0

在当前版本的Git中,这会递归地将当前目录中所有新的、修改的和已删除的文件添加到索引中。

在许多文件系统中,句点(.)是指代当前目录的标准方式(相比之下,“..”是指代父目录)。add Git命令将文件内容添加到索引中。因此,git add .会递归地将当前目录中的所有文件添加到索引中。

从Git 2.0开始(在问题提出一年后的2014年添加),这将包括新的、修改的和已删除的文件。以前的Git版本不包括已删除的文件

请注意,旧版本的Git曾忽略已删除的文件;如果您想添加修改或新文件但忽略已删除的文件,请使用--no-all选项。


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