使用通配符的“git add”不像我希望的那样工作-我必须cd到特定的目录吗?

zzzyeukh  于 2023-08-01  发布在  Git
关注(0)|答案(5)|浏览(115)

当我尝试做一个基本的git add *.erb(或任何简单的通配符表达式)时,git无法识别它(它们)。顺便说一句,我以前从来没有这样做过,所以我相信这是一个新手的错误,但我在其他SO帖子或我学校的校友列表中没有找到任何帮助,所以我认为这篇文章可能是合适的。
举一个(不同的)例子,git status给出了:

#   modified:   config/routes.rb
#   modified:   spec/models/question_spec.rb

字符串
我只想暂存routes文件,所以我尝试了**git add s.rb*,但没有成功。我在应用程序的根目录中...我是否需要在包含我要应用通配符表达式的文件的目录中?那会很痛苦但是...实际上...它刚刚起作用了
希望这不是一个单独的职位,但有没有一个更简单的方法来使用通配符,你不必cd到特定的目录?

cfh9epnr

cfh9epnr1#

把它放在单引号周围。这个应该能用
第一个月

更新

经过更多的测试,我发现我甚至可以在没有引号的情况下执行git add *s.rb。这可能只适用于我的git版本1.7.10.4(Mac OSX Lion,自制软件)。我的解释是,如果shell通配符扩展不匹配任何文件,它将向git add提供原始的未扩展参数'*s.rb'。

sh-3.2$ git status
#
#   modified:   config/routes.rb
#   modified:   spec/models/products_spec.rb
#

字符串
现在我使用不带引号的git add

sh-3.2$ git add *s.rb


令人惊讶的是它的工作!

sh-3.2$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   config/routes.rb
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   spec/models/products_spec.rb
#


如果通配符模式与任何文件都不匹配,git会给予这个错误。

sh-3.2$ git add *x.rb
fatal: pathspec '*x.rb' did not match any files

hjqgdpho

hjqgdpho2#

我不能让递归globs为我工作,因为我的bash版本太旧了。所以我做的就是

find . -name "*.rb" | xargs git add

字符串
工程治疗,我可以添加其他过滤器在那里,如果我需要-所以如果我想添加所有,但一个文件,我可以这样做。

find . -name "*.rb" | grep -v "not_me.rb" | xargs git add


还有几个案子可能有用。
如果你只是想添加已经存在于你的存储库中的文件,你可以

git add -u .


如果你想把所有的东西都加进去

git add .

3pvhb19x

3pvhb19x3#

你也可以尝试使用git的magic signature通过glob匹配路径,例如:

git add ':(glob)**/*.ext'

字符串
查看更多https://css-tricks.com/git-pathspecs-and-how-to-use-them/

e4yzc0pl

e4yzc0pl4#

根据我的经验(我可能遗漏了一个选项或其他东西),git add只查看当前目录和子目录中的文件。因此,如果您想添加所有内容,请转到存储库的根目录。但是如果repo真的很大,这可能需要一段时间,特别是如果你没有通过-u标志。

oxcyiej7

oxcyiej75#

git add '*.ext'

git add '*.prefix.ext'

字符串
//假设你只是想添加js文件使用

git add '*.js'


//如果你只想添加测试

git add '*.test.js'


单引号很重要!

相关问题