【问题标题】:Sparse checkout for a specific file on empty repo空仓库中特定文件的稀疏签出
【发布时间】:2020-02-21 03:49:03
【问题描述】:

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

【问题讨论】:

    标签: git git-checkout sparse-checkout


    【解决方案1】:

    甚至在稀疏检出之前,您也可以检查远程存储库是否有CI.yaml 文件:请参阅“How do I check if a file exists in a remote?”。

    但是如果您已经获取了存储库(并且只需要在其中签出/restore 一个文件),git cat-file -e 就可以工作:

    -e
    

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

    【讨论】:

    • 嗨,VonC。感谢您的回答!比如说,我只需要签出/恢复文件,我可以签出多个文件或者一个文件列表吗?
    • @StefMan 当然:git restore 命令 (git-scm.com/docs/git-restore) 可以将多个文件作为参数。 git restore file1 file2 ...
    • 谢谢!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多