“git add -A :/”有什么作用?

Ame*_*ina 8 git

我见过同事git add -A :/在存储库中使用暂存文件,但我无法在文档中找到它的作用。我缺少什么?

注意:我理解该标志的作用(这个问题之前-A已在 SO 中得到回答)。我的问题具体是关于它在其中扮演的角色。:/git add

lri*_*eau 8

由于您已经知道该-A选项,所以我们git add :/只讨论一下。根据git-add 的文档,最后一个参数是pathspec。它的定义在gitglossary 的文档中。我把相关部分引用一下(我把重要的句子加粗了):

以冒号 : 开头的路径规范具有特殊含义。在简短形式中,前导冒号 : 后面跟着零个或多个“魔术签名”字母(可以选择以另一个冒号 : 结尾),其余部分是与路径匹配的模式。如果模式以不能是“魔术签名”且不是冒号的字符开头,则可以省略终止“魔术签名”的可选冒号。

在长格式中,前导冒号 : 后跟一个左括号(零个或多个“魔术词”的逗号分隔列表和一个右括号),其余部分是与路径匹配的模式。

“魔术签名”由非字母数字的 ASCII 符号组成。

顶部 /

神奇的单词 top(助记符:/)使模式从工作树的根开始匹配,即使您从子目录内部运行命令也是如此。

目前只有斜杠 / 被识别为“魔法签名”,但预计我们将在更高版本的 git 中支持更多类型的魔法。

您可以看到,如果路径规范:/以或开头,则根据定义,路径:(top)规范的该部分是工作树的根。

git add :/暂存工作树中的所有文件。