首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果文件路径不正确,文件的git diff不会报错

如果文件路径不正确,文件的git diff不会报错
EN

Stack Overflow用户
提问于 2018-08-29 15:30:34
回答 1查看 208关注 0票数 2

我知道在git中,我可以通过执行以下操作来获取文件的git diff

代码语言:javascript
复制
git diff [--options] <commit> <commit> [--] [<path>...]

在我的示例中:

代码语言:javascript
复制
git diff commit1 commit2 -- dirThatDoesNotExist\myFileThatDoesNotExist.txt

如果路径(myFileThatDoesNotExist.txt)是一个不存在的文件,我似乎没有从git得到错误或任何其他指示,只是没有响应。

获取空响应与在有效文件中没有更改/差异是没有区别的。

如何获得指示文件路径不正确的错误消息,或者如何以其他方式区分文件名错误和有效文件名中没有更改/差异?

EN

回答 1

Stack Overflow用户

发布于 2018-08-29 16:44:07

你可以测试一个文件是否存在于git rev-parse commit:path的提交中。

代码语言:javascript
复制
git rev-parse commit1:myFileThatDoesNotExist.txt

如果commit1中存在myFileThatDoesNotExist.txt,该命令将返回其blob sha1值,退出代码为0。如果不是,则直接返回commit1:myFileThatDoesNotExist.txt并返回退出代码128,并在标准错误中放入一条错误消息,说明fatal: Path 'myFileThatDoesNotExist.txt' does not exist in 'commit1'

代码语言:javascript
复制
if git rev-parse commit1:myFileThatDoesNotExist.txt || git rev-parse commit2:myFileThatDoesNotExist.txt;then
    # exist in one of the two commits or in both
    git diff commit1 commit2 -- myFileThatDoesNotExist.txt
else
    # exist in neither, do something else
    :
fi
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52071860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档