1

我有两个存储库:ci-test 和 ci-test2。ci-test repo 包含一个 CI.yaml 文件,而 ci-test2 repo 是空的。使用 mgit,我只对两个 repos 上的 CI.yaml 文件执行稀疏签出,我收到错误,“稀疏签出在工作目录上没有条目”。我几乎可以肯定会发生这种情况,因为我试图在 ci-test2 repo 中检出不包含它的文件。我想知道是否有办法优雅地处理这个错误,也许是通过查看 git read-tree。这只是一个例子,我有比这更多的存储库,而且我的 mgit checkout 类对我的存储库的内容一无所知。有人有想法吗?

4

1 回答 1

0

即使在稀疏检出本身之前,您也可以检查远程存储库是否具有该CI.yaml文件:请参阅“如何检查远程存储库中是否存在文件? ”。

但是,如果您已经获取了存储库(并且只需要签出/恢复其中的一个文件),则git cat-file -e可以使用:

-e

<object>如果存在并且是有效对象,则以零状态退出。
如果<object>格式无效,则以非零退出并在 stderr 上发出错误。

于 2019-10-28T22:11:20.047 回答