在使用
git add
命令时,我可以使用.
和*
来添加工作目录中的所有文件。它们之间有什么区别?这两个都不是 git
的概念:
.
是当前工作目录的表示。因此,如果您说,例如,git add .
,您实际上的意思是“git,请将当前工作目录添加到我的当前更改的暂存区”。大多数其他命令以相同的方式处理 .
:cd .
不会使您移动到任何地方。
另一方面,*
是一个 shell glob。这个特定的 glob 被扩展为“所有文件”。因此,当您说 git add *
时,首先发生的是您的 shell(您正在输入命令的程序)将其扩展为当前位置中的每个文件和目录,然后 git
得到了该列表。所以 git
命令根本看不到 *
- 它只看到您想要在当前工作目录中 add
所有内容。
净效果基本相同:工作目录中的所有内容都被添加。但是它发生的方式完全不同。git add .
可能是您想要做的 - 它在幕后执行的操作更接近于您的意图。
git add -nv
进行干运行,并打开详细选项。 - legends2k