问题标签 [shallow-clone]
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.
git - `.git/shallow` 文件中保存了哪些信息?
我知道如果目录中有.git/shallow
文件, git 认为存储库很浅.git
。
当cat
在深度为 5 的本地克隆浅存储库上 -ing 文件时,我只看到一个散列,而当我运行 jenkins 作业以在深度 5 处克隆相同的存储库时,我看到多个散列。
该文件中保存了哪些信息?它是如何确定的?
git - Git在分离HEAD后拉浅克隆
让我们考虑以下两种情况。
案例#1(浅克隆)。
案例 #2(没有 --depth 的克隆)。
因此,区别仅在于在第一种情况下我克隆了有限数量的提交,而在第二种情况下我克隆了所有提交。两种情况下的分支都是相同的,因为显示“git branch”输出。
问题:为什么“拉”在第一种情况下有效而在第二种情况下无效?
git - 从 Catchall(脏)存储库创建适当的 Git 存储库
让我们调用my-dirty-repository
一个现有的 Git 存储库,其中包含许多不相关的脚本。这是一个需要适当清理的包罗万象的存储库。
作为一个最小、完整和可验证的示例,假设此存储库仅包含:
在多个分支之间进行各种独立更新的提交。
目的是创建 2 100% 独立的 Git 存储库,只有保留文件的历史记录(参考)。
我们称它们为my-clean-repository1
and my-clean-repository2
,第一个只有关于 script1 的历史,第二个只有关于 script2 的历史。
我尝试了 3 种方法来满足我的需求,但没有成功:
我很确定有一种方法可以正确执行它。
git - 将浅回购转换为普通回购
我已经“浅化”了一个回购:
现在我尝试推动:
我知道这个限制是由于回购很浅。
如何将浅回购转换为普通回购?
我不在乎失去旧的历史。其实我想丢掉旧的历史
为了澄清这一点:
- 我希望转换后的存储库保留提交历史记录,以及浅存储库的元数据(日期、作者、提交消息……)
- 我要彻底丢掉旧历史
- 我不关心与原始 repo 的兼容性:这将被视为新 repo
- 我不在乎是否重新创建了提交,只是保留了元数据。
编辑
简单地删除.git/shallow
文件不起作用:
编辑2
试图通过以下方式来浅显fetch
:
仍然留下一个grafted
回购:
git - Jenkins Pipeline:scm checkout 浅拷贝失败
我正在使用 Jenkins 文件来构建管道。我正在尝试使用 DSL 克隆参考存储库,如下所示。
并且当管道正在执行时,它正在被翻译成这个
这会在我的 Jenkins 服务器上克隆整个存储库。我只想获得我的 repo 的浅表副本,以便我可以将我的 Jenkins 服务器从空间紧缩中拯救出来。请在这里帮忙。
我正在使用:詹金斯版本:2.58,
插件:
流水线 SCM 步骤:2.4
吉特:3.3.0
git - 如何在没有提交历史的情况下制作可见的 github fork?
假设您想将旧的(GitHub)存储库A克隆到您自己的存储库B中。但是,您不需要任何分支,也不需要很长的提交历史。你想要的是一个浅层克隆,作为仓库最新状态的快照。最好只使用最新的提交消息,同时仍然显示A
它是从哪个点分叉的。这在 GitHubInsights > Network
选项卡中以图形方式显示,箭头从一个用户回购到另一个。
问题是到目前为止我尝试过的解决方案,最终都在 GitHub图表中出现了差距。Network
这可能是因为它们都依赖于删除/恢复.git
或强制推送,这似乎会导致 GitHub UI 断开克隆/分叉,而最终看起来像这样:
我不确定如何最好地表达这个问题,因为已经有几十个听起来非常相似,如果不一样的话,而他们似乎都没有解决这个问题,如果可能的话。
所以问题是:
如何在 GitHubNetwork
图表中保留 forks 依赖项,同时仍删除大部分提交历史记录?
(我知道我无法删除整个历史记录并且仍然在图表中连接了一些东西,但是不应该以这样一种方式压缩分叉,使所有提交A
都变成一个压缩提交(从叉子),而所有新的B
都是正常的?)
我已经查看了这些答案,但它们并没有太大帮助:
git - Git浅克隆:只有最近X个月有活动的分支
有一个长期运行的项目存储库,它比我想要或需要的要大得多。最近几个月我浅克隆但没有使用--no-single-branch
,所以我的本地仓库只知道origin/master
并且我无法检查任何其他分支。
从我如何“撤消”--single-branch 克隆?我知道我可以获得所有分支,或者一次添加一个。
ALL 包括几十个我不需要知道的分支,并且下载了太多 MB。一次1个有点痛。
我的问题是,如何添加在过去x个月(或x *100 次提交)中有活动的所有分支 - 并跳过其他所有内容?
如何获取按最近提交排序的 Git 分支列表?按日期对分支进行排序,但不适用于浅克隆。有没有办法从 GitHub 而不是从 git 本身获取这个列表?(因为这似乎需要下载所有内容。)
node.js - 使用 simple-git 的 nodejs 浅 git 克隆
我正在尝试使用simple-git创建浅克隆。我正在尝试创建此命令的等效项:git clone --depth 1 https://github.com/steveukx/git-js.git
. 我的代码如下:
我在 中指定--depth 1
了options
,但代码复制了整个回购历史,它似乎完全忽略了给定的选项。我这样做是否正确,什么会导致这种行为?
git - 即使在 Jenkins 构建上禁用了浅层,SonarQube 也会发出浅层克隆警告
我有一个使用 MSBuild 构建解决方案的 Jenkins 服务器。未启用浅克隆(在高级克隆行为上),所以我认为它正在获取所有最后的提交。我正在使用 SonarQube 进行分析。我设置在构建之前运行开始分析,在构建完成后运行结束分析。SonarQube 分析成功完成,但我收到警告:
在分析过程中检测到浅克隆。某些文件会丢失 SCM 信息。这将影响问题的自动分配等功能。请配置您的构建以禁用浅层克隆。
有人知道我对 SonarQube 缺少什么可以正常工作吗?