git animals有这一系列命令:
git init
git add *
git commit -a -m ‘initial commit and release!’
git add *
与git add .
(我通常做的)相比有什么相同?
答案 0 :(得分:17)
git add *
将添加*
shell 扩展结果的所有路径,而git add .
将告诉git添加当前目录。< / p>
git add *
不会添加以.
开头的路径,因为*
的shell扩展会将这些路径视为“隐藏”路径。
git add *
也会失败,因为如果你明确指定一个被忽略的路径而没有传递-f
(强制)标志来表明你,那么git认为这是一个错误真的想添加一个被忽略的路径。
如果你得到git来扩展glob(git add '*'
),它将添加“隐藏”文件并跳过忽略的文件。在这种情况下,它与git add .
的工作方式相同。
答案 1 :(得分:2)
默认情况下,将目录传递给git add
会递归添加其子目录和文件。
通配符*
将被shell扩展为当前目录下的文件名。
而且你知道,在Unix .
中只指当前目录,所以这两个命令是等价的。虽然*
由shell处理,而.
由git处理,但它们也会做同样的事情。