git add *和git add之间有什么区别?如果有的话?

时间:2012-06-10 18:26:03

标签: git git-add

git animals有这一系列命令:

git init
git add *
git commit -a -m ‘initial commit and release!’

git add *git add .(我通常做的)相比有什么相同?

2 个答案:

答案 0 :(得分:17)

git add *将添加* shell 扩展结果的所有路径,而git add .将告诉git添加当前目录。< / p>

git add *不会添加以.开头的路径,因为*的shell扩展会将这些路径视为“隐藏”路径。

如果git当前正在忽略任何扩展路径,那么

git add *也会失败,因为如果你明确指定一个被忽略的路径而没有传递-f(强制)标志来表明你,那么git认为这是一个错误真的想添加一个被忽略的路径。

如果你得到git来扩展glob(git add '*'),它将添加“隐藏”文件并跳过忽略的文件。在这种情况下,它与git add .的工作方式相同。

答案 1 :(得分:2)

默认情况下,将目录传递给git add会递归添加其子目录和文件。

通配符*将被shell扩展为当前目录下的文件名。

而且你知道,在Unix .中只指当前目录,所以这两个命令是等价的。虽然*由shell处理,而.由git处理,但它们也会做同样的事情。