请原谅新手问题。我正在寻找一种快速但安全的选项,以一个命令添加所有未暂存/未跟踪的文件(由“ git status”返回)。从项目根目录使用它是否安全:
git add *
有什么缺点吗? 谢谢
答案 0 :(得分:2)
*
是由Shell扩展的通配符。它不会匹配“隐藏”文件(名称以.
开头的文件),并且如果当前目录中的文件太多而无法在命令行上显示,则会失败。
没有这些缺点的解决方案是:
git add .
之所以可行,是因为git递归地添加目录的内容,因此告诉它添加.
(当前目录)会添加所有内容。
另一个差异与.gitignore
模式有关。如果当前目录中有一个文件与.gitignore
中的模式匹配,那么git add .
只会静默忽略它。但是shell通配符不了解.gitignore
,因此,当您执行git add *
时,被忽略的文件将被明确添加到git add
命令中,这将导致git add
失败,错误。
答案 1 :(得分:1)
使用git add .
代替git add *
。
git add .
会将所有本地未跟踪文件添加到暂存区域,并根据.gitignore进行过滤。
但是git add *
将忽略.gitignore
来添加每个文件。