我是git的新手,我有一个关于在git中添加文件的问题。我发现了许多关于git add .
与git add -a
、git add --all
、git add -A
等之间的差异的堆栈溢出问题,但我一直找不到一个地方来解释git add *
的作用。我甚至看过git add man page,但它不起作用。我一直在用它来代替git add .
,我的同事问我为什么。我没有答案。我只是一直使用git add *
。
git add .
和git add *
是一样的吗?一个是只从当前目录添加更改的文件,而另一个是从当前目录和子目录(递归)添加文件吗?
在其他堆栈问题之一上列出了一个很好的图表,显示了git add -A
git add .
和git add -u
之间的差异,但它没有git add *
。
注意:我理解使用星号作为通配符的含义(添加具有给定扩展名的所有文件)。例如,git add *.html
将添加所有扩展名为.html
的文件(但忽略.css
、.js
等)。
谢谢你的帮助!
发布于 2014-09-25 23:37:10
add *
表示添加当前目录中的所有文件,但名称以点开头的文件除外。这是您的shell功能,Git只接收文件列表。
add .
在您的shell中没有特殊的含义,因此Git递归地添加整个目录,这几乎是相同的,但包括名称以点开头的文件。
发布于 2014-09-25 23:34:46
*
不是git的一部分,它是一个由外壳解释的通配符。*
会扩展到当前目录中的所有文件,然后才会传递给git,git会对所有文件执行add
操作。.
是当前目录本身,使用git add
会添加该目录及其下的所有文件。
https://stackoverflow.com/questions/26042390
复制相似问题