什么是;git add-A://quot;做
我见过同事们使用什么是;git add-A://quot;做,git,Git,我见过同事们使用gitadd-A://在存储库中暂存文件,但我无法找到它在存储库中的作用。我错过了什么 注意:我理解标志-A的作用(该问题已在SO中得到回答)。我的问题是关于:/,以及它在git add中所起的作用(这个答案最初是关于refspec的,后来证明是不相关和不正确的) 正如正确指出的,本例中的:字符是pathspec语法的一部分 关于PathSpec的文档很难找到,但有一个“gitglossary”手册页,可以通过键入ManGitGlossary或访问来获得 有关部分: 以冒号开头的
gitadd-A://
在存储库中暂存文件,但我无法找到它在存储库中的作用。我错过了什么
注意:我理解标志-A
的作用(该问题已在SO中得到回答)。我的问题是关于:/
,以及它在git add
中所起的作用(这个答案最初是关于refspec的,后来证明是不相关和不正确的)
正如正确指出的,本例中的:
字符是pathspec语法的一部分
关于PathSpec的文档很难找到,但有一个“gitglossary”手册页,可以通过键入ManGitGlossary
或访问来获得
有关部分:
以冒号开头的pathspec:
具有特殊含义。在
缩写形式,前导冒号:
后接零或多个“magic”
“签名”字母(可选以另一个冒号结尾)
:),其余的是要与路径匹配的模式。这个
如果出现以下情况,可以省略终止“魔术签名”的可选冒号
模式以不能是“魔术签名”的字符开始
不是冒号
从长远来看。。。[剪报]
“魔术签名”由一个ASCII符号组成,该符号不是
字母数字
top/
神奇的单词
top
(助记符:/
)使模式与
工作树的根,即使在运行命令时也是如此
从子目录中
结论与我的原始答案相同:
://
指的是当前工作树的根目录。正如您已经知道的-A
选项,让我们仅讨论git add://
。根据,最后一个参数是pathspec。它的定义在本文中。让我引用相关部分(我用粗体字写了重要的句子):
以冒号:开头的pathspec具有特殊含义。在缩写形式中,前导冒号:后跟零个或多个“魔术签名”字母(可选地以另一个冒号结尾:),其余的是与路径匹配的模式。如果模式以不能是“魔术签名”且不是冒号的字符开头,则可以省略终止“魔术签名”的可选冒号
在长格式中,前导冒号:后面是一个开括号(,一个由零个或多个“神奇单词”组成的逗号分隔列表,以及一个右括号),其余的是与路径匹配的模式
“魔术签名”由非字母数字的ASCII符号组成
top/
即使从子目录中运行命令,神奇的单词top(助记符:/)也会使模式从工作树的根匹配。
目前,只有斜杠/被认为是“魔术签名”,但可以预见,我们将在以后的git版本中支持更多类型的魔术
您可以看到,如果pathspec以:/
或:(顶部)
开头,则根据定义,pathspec的该部分是工作树的根
git add:///code>在工作树中暂存所有文件。“git add-A”相当于“git add”。“git add-u”“git add-A”只是做这两件事的捷径。我认为:
它指的是存储库的根目录,但我在文档中没有找到。我以前从未见过这种语法,但是它看起来很像。@KeithThompson在中查看了路径规范的定义,但是git add采用路径说明符,而不是refspec。:/
语法闻起来像是旧的git add
行为的事后解决方法:请看这是一个pathspec而不是refspec。@lrineau:请随意编辑我的答案或发布你自己的答案。我使用git,但我设法避免学习RefSpec和pathspec。我通过引用gitglossary(7)改进了我的答案,正如您所做的那样。git add
(至少是您链接到的文档)的文档似乎没有提到pathspec。我刚帮你修好。@user815423426我不明白。选项的概要和第一段都提到了pathspec。但是pathspec的定义很难找到。它在@user815423426 Sorry中描述。我读到了你的编辑,事实上我给出的git add(1)
的链接是另一个版本。在我的机器上,我有Git-1.8.3和它的文档页面,它确实讨论了pathspec。旧版本讨论文件模式。