在git中搜索与给定文件路径匹配的最后提交的文件

时间:2019-12-15 04:26:56

标签: git grep

我正在使用下面的git命令获取最后提交的文件,

git diff --name-only --relative= --diff-filter=AMDR --cached @~

然后我得到的输出如下,

bitbucket-pipelines.yml
app-connect/source/cn/ConnectBuild.sh

现在,我要检查“ app-connect/source/cn/路径中是否有文件,然后只有我做些事。

例如:

if git diff --name-only --relative= --diff-filter=AMDR --cached @~  | grep "/app-connect/source/cn"; then do something; fi

在这种情况下,能否请您告诉我如何使用grep或正则表达式检查给定路径中文件的存在。

1 个答案:

答案 0 :(得分:1)

我认为git show会更简单

lines=$( git show --pretty="" --name-only -- app-connect/source/cn | wc -l )
if [ $lines -gt 0 ]; then
    echo do something
fi

如果再次需要使用grep检查路径,请不要提供git的路径,不要将其输入grep,在其中设置正则表达式,然后将其输入wc

lines=$( git show --pretty="" --name-only | egrep blahblah | wc -l )