58

我里面有几个 .screen 文件/xxx/documentation及其已被 Git 跟踪的子目录。

在修改了许多这些屏幕文件后,我运行(如 文档git add documentation/\\*.screen中的第一个示例所示)git-add来暂存这些文件,但命令失败:

致命:pathspec 'documentation/\*.screen' 不匹配任何文件

我的命令不好,还是 git 有错误?

4

6 回答 6

60

这是文档中的一个错误。引用星号

$ git 添加文档/\*.screen

或者

$ git add '文档/*.screen'

得到你想要的行为。

如果您只想在当前目录中添加文件,请使用

$ git add *.screen

更新:我提交了一个补丁来纠正这个问题,现在从版本 1.6.6.2 开始修复。

于 2010-02-08T16:18:23.343 回答
17

我已经尝试了接受的答案,但它对我没有用..所以这是我的,以防万一有人想要完成它的工作而不花时间剖析可能导致问题的各个方面:

find documentation -name "*.screen" | xargs git add -u

// git-add 的 -u 选项仅将之前跟踪和修改的文件添加到索引中

于 2011-06-23T09:28:02.867 回答
4

这是我刚刚用于 git 添加目录中所有文件的类似问题:

find . | sed "s/\(.*\)/\"\1\"/g" | xargs git add 

对于原始问题,命令将是:

find -name "*.screen" | sed "s/\(.*\)/\"\1\"/g" | xargs git add 

请注意,我正在处理完全指定的文件名包含空格的情况。这就是为什么我的回答。编辑第一个之前的部分|,以便选择要添加的不同文件。

于 2011-08-23T09:00:38.253 回答
4

您告诉外壳程序查找*.screen(即正是这个字符串 - 它不存在 - 而不是您想要的“所有以 结尾的文件.screen)。省略\\外壳程序可以为您进行文件名扩展。

于 2010-02-08T12:20:56.400 回答
3

git add *.java 对我有用,可以递归地添加所有 java 文件

于 2013-11-19T19:23:57.147 回答
1

尝试

git add ./documentation/*.screen
于 2010-02-08T12:20:35.387 回答