在我的应用程序中,我使用git进行某些外部文件的版本管理
我正在使用git show HEAD~1:some_file
之类的命令来获取文件的某个版本(基于git标记,提交哈希或与HEAD的关系)。
当文件不存在时,输出“致命”消息(我想到stderr管道)。
e.g。
致命:'HEAD~1'
中不存在路径'some_file'
是否有一个干净的命令来检查某个文件中是否存在某个文件?
答案 0 :(得分:13)
你是怎么用的?在脚本中?您始终可以检查退出代码。 git cat-file
可能更适合:
git cat-file -e HEAD~1:some_file
使用-e
选项,当对象不存在时,它将以非零错误代码退出,而当对象不存在时,它将返回0。但是,它也会打印fatal: Not a valid object name
,但这很容易被抑制。
答案 1 :(得分:5)
到目前为止,我发现的最好的事情是:
git ls-tree -r HEAD~1 --name-only
其中输出特定版本中的文件名列表。 我需要解析输出并过滤特定文件。因此,它比我希望的那么直接,但是一块蛋糕。