git animals过这样一系列命令:git add *和git add。有什么区别?
git init
git add *
git commit -a -m ‘initial commit and release!’
什么git add *
相比git add .
(我通常做的),他们是一致的吗?
git animals过这样一系列命令:git add *和git add。有什么区别?
git init
git add *
git commit -a -m ‘initial commit and release!’
什么git add *
相比git add .
(我通常做的),他们是一致的吗?
git add *
将增加所有可在外壳扩张*
而git add .
的结果会告诉混帐添加当前目录的路径。
git add *
将不会添加以.
开头的路径,因为*
的外壳扩展将这些路径视为“隐藏”路径。
git add *
如果任何扩展的路径正在由git的,因为git的认为它是一个错误,如果你明确指定一个被忽略的路径,而没有经过-f
(力)标志,以表明你真的想添加一个被忽略的路径忽略也将失败。
如果你得到git扩展glob(git add '*'
)它会添加“隐藏”文件并跳过忽略的文件。在这种情况下,它的工作原理与git add .
相同。
* shell *在这里是指命令行应用程序还是操作系统? –
默认情况下,将目录传递给git add
将递归添加其子目录和文件。
通配符*
将由您的shell作为当前目录下的文件名进行扩展。
而你知道,在Unix中.
只引用当前目录,所以这两个命令是等价的。虽然*
由shell处理,.
由git处理,但他们做同样的事情。
由于'*'由shell处理,所以不会考虑'.gitignore',而'.'会。 – wisbucky
*通常表示“匹配所有”和。意思是“当前目录”,默认情况下是递归完成的。 – TylerH4
@ TylerH4:但是如果'*'的扩展包含目录,那么在任何情况下都会通过git递归添加。 –