问题标签 [sparse-checkout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - git sparse-checkout 忽略特定文件类型
我有一个 git 存储库,里面有一堆大的 csv,我不想克隆,所以我遇到了 git sparse-checkout 和这篇文章:https ://github.blog/2020-01-17-bring -your-monorepo-down-to-size-with-sparse-checkout/
从这篇文章中,我采取了以下措施:
然后我编辑.git/info/sparse-checkout
并添加以下内容(改编自上面页面中的示例):
但它似乎不能正常工作。一些文件夹被克隆后git pull
,有些则没有。我还注意到一个警告,当git sparse-checkout list
我收到:
仅忽略某种文件类型的正确方法是什么?
git - Gitlab CI 和 Git 部分克隆
我正在一个大型 monorepo 上测试 git 部分克隆功能。开发人员可能会在他的机器上运行以下命令:
这似乎运作良好,我现在正试图在 Gitlab 中启动并运行 CI。如果我在我的.gitlab-ci.yml
文件中使用默认设置,Gitlab 会克隆整个 monorepo,这需要很长时间。
Gitlab 最近添加了对部分克隆的实验性支持,但是 Gitlab-CI 中是否有任何支持?我唯一的选择是使用上面的命令GIT_STRATEGY: none
然后手动克隆所有内容吗?before_script
git - Jenkins git checkout - 将 .git 文件夹放在另一个地方
我们使用 Jenkins 通过几个 git repos 的 VPN 部署到客户端服务器上的客户端文件夹。我已经设置了“签出到子目录选项”和“稀疏签出”。
我们只需要部署一个公共存储库的一些文件(其他文件是私有的)。但是如果.git文件夹在里面,查看其他文件就不难了。
对于 git,可以将 .git 文件放入 repo 文件夹并在此文件中指定 .git 文件夹的位置,例如:
(在此处查看有关 gitdir 的更多信息)
是否可以像上面那样为 git Jenkins 插件设置 .git 文件夹的另一个位置?
git - github/git Checkout 在 Windows 上返回“错误:无效路径”
当我尝试从 github 签出存储库时,出现错误:
我怀疑问题是路径包含 : 在 Windows 上是非法的。
在研究了错误之后,我发现了 2 个可能的答案:
1)更改存储库文件的路径。 不幸的是,这是一个团队资源,在可预见的将来无法修复。
2)使用稀疏结帐。 我试过这个没有效果,如下所示:
$ git clone -n git@github.com:XXXXXX/deploy.git
克隆到'deploy'...
远程:枚举对象:57,完成。
远程:计数对象:100% (57/57),完成。
远程:压缩对象:100% (49/49),完成。
远程:总计 86457(增量 10),重用 22(增量 8),打包重用 86400
接收对象:100%(86457/86457),1.50 GiB | 4.73 MiB/s,完成。
解决增量:100% (59779/59779),完成。
$ cd deploy/
$ git config core.sparsecheckout true
$ echo www >> .git/info/sparse-checkout
$ git checkout centos6
error: invalid path 'configs/perl-modules/DIST.64/perl-HTML-Tree-1 :5.03-1.el6.noarch.rpm'
错误:路径无效 'configs/perlbrew/perls/perl-5.24.1/man/man3/App::Cpan.3'
。
. (对许多文件重复)
。
这是使用 Git for Windows “git version 2.28.0.windows.1”完成的。我还尝试了两种类型的行尾并使用各种版本的 .git/info/sparse-checkout 例如:
Checkout 在 Linux、MacOS 和 WSL 上运行良好,唯一的问题是我的 IDE 不能在那里工作。为什么 sparse-checkout 不能在 Windows 上运行。还有其他可能吗?
git - 如何在不下载其父文件夹的情况下签出或克隆文件夹
我只想从 gitlab 中检出一个文件夹,而没有它的父文件夹和层次结构中的其他父文件夹。
我们的 gitlab 存储库结构是这样的hybris/bin/custom/asamp
。还有其他与asamp文件夹平行的文件夹。我只想签出 asamp文件夹
我一直在尝试此链接上给出的解决方案 -如何仅克隆 Git 存储库的子目录?但我无法仅下载asamp文件夹,它还下载完整的层次结构,即我可以hybris/bin/custom/asamp
在本地存储库中看到。请注意,其他文件夹是asamp的同级文件夹当我进行稀疏检出时没有下载,但是我不想要完整的层次结构被检出。我只想下载asamp文件夹而不是其父文件夹。
我正在使用 gitlab。
git - 撤消 git checkout .. 稍作改动
首先,让我澄清一件事:尽管有很多关于撤消 git checkout 的问题,但这不是(至少据我评估)一个重复的问题。
现在让我解释一下我的用例:我正在使用 sparse-checkout 功能来拥有一个工作副本,其中不包含中央远程仓库中的所有文件。
现在假设我想将一个文件添加到我的工作副本中,但我犯了一个错误并签出了错误的文件。
我想恢复我的工作副本,就好像该文件从未签出一样。
那就是:我想从我的工作副本中删除该文件,但我不希望从远程仓库中删除该文件。我一直在到处寻找,但仍然没有找到一种方法来做我想做的事。
git - 稀疏结帐但排除或忽略根目录中的文件?
状态的文档git sparse-checkout
,
默认情况下,运行 git sparse-checkout init 时,会将根目录添加为父模式。此时,sparse-checkout 文件包含以下模式:
但是,我不想在sparse-checkout
我想要的东西中包含根,
但这不起作用,而是返回
警告:无法识别的模式:
/*
警告:禁用锥形模式匹配
这样 sparse-checkout 只提取顶部的一个目录,而不是存储库的 root 中的文件。我怎样才能做到这一点?
git - 可以将稀疏结帐模式添加到 .gitmodules 中吗?
假设我有一个git submodule
并且我想在它上面启用稀疏结帐。是否可以这样做并将该文件添加到克隆的其他人的存储库中?git 子模块被添加到,/.gitmodules
但该子模块的稀疏签出文件在.git/modules/foo/info/sparse-checkout
? 如何配置 git 子模块,以便当其他人克隆时,--recursive
他们只能获得白名单目录?如何将子模块上的 sparse-checkout 配置保存到 repo 中?