当我尝试做一个基本的git add *.erb
(或任何简单的通配符表达式)时,git无法识别它(它们)。顺便说一句,我以前从来没有这样做过,所以我相信这是一个新手的错误,但我在其他SO帖子或我学校的校友列表中没有找到任何帮助,所以我认为这篇文章可能是合适的。
举一个(不同的)例子,git status给出了:
# modified: config/routes.rb
# modified: spec/models/question_spec.rb
字符串
我只想暂存routes文件,所以我尝试了**git add s.rb*,但没有成功。我在应用程序的根目录中...我是否需要在包含我要应用通配符表达式的文件的目录中?那会很痛苦但是...实际上...它刚刚起作用了
希望这不是一个单独的职位,但有没有一个更简单的方法来使用通配符,你不必cd到特定的目录?
5条答案
按热度按时间cfh9epnr1#
把它放在单引号周围。这个应该能用
第一个月
更新
经过更多的测试,我发现我甚至可以在没有引号的情况下执行
git add *s.rb
。这可能只适用于我的git版本1.7.10.4(Mac OSX Lion,自制软件)。我的解释是,如果shell通配符扩展不匹配任何文件,它将向git add
提供原始的未扩展参数'*s.rb'。字符串
现在我使用不带引号的
git add
。型
令人惊讶的是它的工作!
型
如果通配符模式与任何文件都不匹配,git会给予这个错误。
型
hjqgdpho2#
我不能让递归globs为我工作,因为我的bash版本太旧了。所以我做的就是
字符串
工程治疗,我可以添加其他过滤器在那里,如果我需要-所以如果我想添加所有,但一个文件,我可以这样做。
型
还有几个案子可能有用。
如果你只是想添加已经存在于你的存储库中的文件,你可以
型
如果你想把所有的东西都加进去
型
3pvhb19x3#
你也可以尝试使用git的magic signature通过glob匹配路径,例如:
字符串
查看更多https://css-tricks.com/git-pathspecs-and-how-to-use-them/
e4yzc0pl4#
根据我的经验(我可能遗漏了一个选项或其他东西),git add只查看当前目录和子目录中的文件。因此,如果您想添加所有内容,请转到存储库的根目录。但是如果repo真的很大,这可能需要一段时间,特别是如果你没有通过-u标志。
oxcyiej75#
字符串
//假设你只是想添加js文件使用
型
//如果你只想添加测试
型
单引号很重要!