首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空的.git/info/sparse checkout与缺少的不同,但恰恰相反,为什么?

空的.git/info/sparse checkout与缺少的不同,但恰恰相反,为什么?
EN

Stack Overflow用户
提问于 2014-09-25 18:18:48
回答 1查看 163关注 0票数 1

第一个core.sparsecheckout设置为true

我创建了一个空的.git/info/sparse-checkout文件。这导致我无法签出最近从远程获取的新分支。

然后我尝试删除空的.git/info/sparse-checkout文件,现在我可以结帐了。

我了解这一事实,我知道我可以在.git/info/sparse-checkout中包含/*来使其工作。

我只是想知道为什么?这背后的理性是什么?这难道不令人困惑吗?

对我来说,一个空的sparse-checkout文件和一个丢失的文件都在说:“稀疏签出没有指定任何东西”,因此git应该签出所有东西。

我想我需要的是对当前选择的更令人信服的解释,而不是它是如何实现的。

EN

回答 1

Stack Overflow用户

发布于 2014-09-25 20:20:01

实际上并非如此:如果.git/info/sparse-checkout存在,稀疏签出机制就会起作用,并查找要签出的文件/文件夹。

请参阅unpack-trees.c

代码语言:javascript
复制
if (!o->skip_sparse_checkout) {
    if (add_excludes_from_file_to_list(
          git_path("info/sparse-checkout"), "", 0, &el, 0) < 0)

如果它找不到要签出的文件/文件夹(因为.git/info/sparse-checkout为空),它会签出...没什么。

但如果.git/info/sparse-checkout一开始就不在那里,这根本就不是一个稀疏的结账,它会检查所有的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26036086

复制
相关文章

相似问题

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