git - 稀疏结帐但排除或忽略根目录中的文件?
问题描述
状态的文档git sparse-checkout
,
默认情况下,运行 git sparse-checkout init 时,会将根目录添加为父模式。此时,sparse-checkout 文件包含以下模式:
/* !/*/
但是,我不想在sparse-checkout
我想要的东西中包含根,
/directory_i_want
!/*
!/*/
但这不起作用,而是返回
警告:无法识别的模式:
/*
警告:禁用锥形模式匹配
这样 sparse-checkout 只提取顶部的一个目录,而不是存储库的 root 中的文件。我怎样才能做到这一点?
解决方案
您看到这一点是因为您启用了sparseCheckoutCone
. 从参考:
锥形模式集中接受的模式是:
递归:包含目录内的所有路径。
父级:包含一个目录中的所有文件。
除了以上两种模式,我们还期望根目录下的所有文件都包含在内。
但是它不会自动启用,所以我想知道您为什么要设置它。无论如何,你显然不能使用它,因为你排除了除了directory_i_want
. 首先,禁用该选项:
git config core.sparseCheckoutCone 'false'
接下来,恢复初始回购:
git sparse-checkout disable
最后,选择您需要的图案
git sparse-checkout set directory_i_want/
如果您现在查看文件$GIT_DIR/info/sparse-checkout
,您将看到一个非常简单的模式 ( directory_i_want/
),这就足够了。考虑到sparse-checkout
您尝试过的情况,顺序很重要:您不能放在directory_i_want
开头,然后用!/*/
. 这将导致一个错误,如下所示:
错误:稀疏结帐在工作目录上没有留下任何条目
推荐阅读
- sql - 从同一张表上的选择插入并将新旧标识值存储在单独的表中
- selenium - 如何处理父子 iframe
- jquery - 全屏灯箱
- javascript - 在另一个过渡结束后设置高度 0 px
- javascript - node.js 中无限循环中的 Promise 和 async/await
- ebay-api - 存储来自 eBay FindCompletedItems 响应的数据
- python - 如何打印python字符串的某些部分?
- docker - 将传出 TCP 连接映射到 Docker 容器
- javascript - ReactJS - 带有地图 js 的嵌套循环
- r - ggplot aes_string 不适用于空格