我里面有几个 .screen 文件/xxx/documentation
及其已被 Git 跟踪的子目录。
在修改了许多这些屏幕文件后,我运行(如 文档git add documentation/\\*.screen
中的第一个示例所示)git-add
来暂存这些文件,但命令失败:
致命:pathspec 'documentation/\*.screen' 不匹配任何文件
我的命令不好,还是 git 有错误?
我已经尝试了接受的答案,但它对我没有用..所以这是我的,以防万一有人想要完成它的工作而不花时间剖析可能导致问题的各个方面:
find documentation -name "*.screen" | xargs git add -u
// git-add 的 -u 选项仅将之前跟踪和修改的文件添加到索引中
这是我刚刚用于 git 添加目录中所有文件的类似问题:
find . | sed "s/\(.*\)/\"\1\"/g" | xargs git add
对于原始问题,命令将是:
find -name "*.screen" | sed "s/\(.*\)/\"\1\"/g" | xargs git add
请注意,我正在处理完全指定的文件名包含空格的情况。这就是为什么我的回答。编辑第一个之前的部分|
,以便选择要添加的不同文件。
您告诉外壳程序查找*.screen
(即正是这个字符串 - 它不存在 - 而不是您想要的“所有以 结尾的文件.screen
)。省略\\
外壳程序可以为您进行文件名扩展。
git add *.java 对我有用,可以递归地添加所有 java 文件
尝试
git add ./documentation/*.screen