我在/xxx/documentation
及其子目录中有几个.screen文件已被Git跟踪。
修改了许多这些屏幕文件后,我运行git add documentation/\\*.screen
- 如git-add
文档中的第一个示例所示 - 来暂存这些文件,但命令失败:
fatal: pathspec 'documentation/\*.screen' did not match any files
我的命令不好,还是git有错误?
答案 0 :(得分:59)
这是文档中的错误。用
引用星号$ git add documentation/\*.screen
或
$ git add 'documentation/*.screen'
获得您想要的行为。
如果您只想在当前目录中添加文件,请使用
$ git add *.screen
答案 1 :(得分:17)
我已经尝试了接受的答案,但它对我没有用..所以这是我的,以防有人想要完成工作而不花时间解剖可能导致问题的各个方面:
find documentation -name "*.screen" | xargs git add -u
// git-add的-u选项只为以前跟踪和修改的文件添加索引
答案 2 :(得分:4)
你告诉shell要查找*.screen
(即确切地说这个字符串 - 它不存在 - 而不是你想要的“所有以.screen
结尾的文件。)省略{{1所以shell可以为你做文件名扩展。
答案 3 :(得分:4)
这就是我刚刚用于git添加目录中所有文件的类似问题:
find . | sed "s/\(.*\)/\"\1\"/g" | xargs git add
对于原始问题,命令将是:
find -name "*.screen" | sed "s/\(.*\)/\"\1\"/g" | xargs git add
请注意,我正在处理完全指定的文件名包含空格的情况。这就是为什么我的回答。编辑第一个|
之前的部分,以便选择要添加的不同文件。
答案 4 :(得分:1)
试
git add ./documentation/*.screen
答案 5 :(得分:1)
git add * .java可以让我递归地添加所有java文件