如何列出两个git分支之间的差异,但只显示那些具有特定文件扩展名的文件?
我发现以下内容为我提供了两个分支之间的所有不同文件: -
git diff -r --name-only --no-commit-id branch1 branch2
然而,我已经尝试将其输入grep并搜索只是' yml'文件....我一无所获。
(git diff -r --name-only --no-commit-id branch1 branch2) | grep "*.yml"
我可以在第一个命令中看到yml文件输出,但在第二个命令中没有输出。
答案 0 :(得分:2)
你可以为git diff附加一个类似shell的模式。
git diff -r --name-only --no-commit-id branch1 branch2 "*.yml"
正如@larsks所说,grep接受正则表达式,这与shell通配符不同。
答案 1 :(得分:1)
*.yml
不是有效的正则表达式。
*
表示“前面的字符,零次或多次”,因此它作为正则表达式的前导字符没有意义。如果您要查找以.yml
结尾的所有文件,只需... | grep '\.yml$'
。我们正在逃避.
,因为.
表示“任何字符”,$
表示“行尾”(因此明确 匹配a名为的文件,例如foo.yml.j2
)。
答案 2 :(得分:0)
*
接受正则表达式,其中.
和git diff -r --name-only --no-commit-id branch1 branch2 -- "*.yml"
具有完全不同的含义。
是的,你不必使用grep:
SELECT t.ID, t.itemcode, t.qty, t.expdate, t.total
FROM
(
SELECT t1.ID,
t1.itemcode,
t1.qty,
t1.expdate,
(SELECT SUM(t2.qty) FROM put_in t2
WHERE t2.expdate <= t1.expdate AND t2.itemcode = 'RM1181') AS total
FROM put_in t1
WHERE t1.itemcode = 'RM1181'
) t
WHERE t.total - t.qty < 500 AND
t.itemcode = 'RM1181'
ORDER BY t.expdate;