【发布时间】:2021-10-18 13:32:11
【问题描述】:
长话短说,我正在寻找的是能够仅获取本地存储库中的特定分支,即使该存储库最初不是用“--single-branch -branch ”。
为了分享完整的故事——我们想使用浅克隆来减少一般的 git 运行时间,特别是在我们的自定义 CI 工具中。另外我应该声明我们使用的是 Android 的“repo”工具。
据我了解,我们首先需要使用 --depth=1 克隆 git 存储库,这是 Android 的“repo”工具支持的,但这对于我们需要加深获取的 CI 工具来说还不够从用户的存储库中提取更新时,能够拥有共同的 git 历史记录。因此,当我们尝试加深 fetch(为简单起见 - “git fetch --deepen=1”)时,git 会获取所有分支和标签,并花费大量运行时间这样做,尽管我们只需要加深 fetch 一次非常具体的分支。
如果 git 存储库最初使用“--single-branch -branch”(除了--depth=1)克隆,然后“git fetch --deepen=1”运行超快,则此问题已解决。但问题是,Android 的“repo”工具似乎不支持使用“--single-branch -branch”克隆 git repos,因此我的问题在顶部。或者,如果有另一种方法可以加深对特定分支的提取 - 我很高兴知道详细信息。
谢谢!
【问题讨论】:
-
谢谢,但实际上我已经尝试过了。即使在运行“repo init --depth=1”然后运行“repo sync --current-branch”时,调用“git fetch --deepen=1”时我仍然会遇到获取时间过长的问题。我假设“repo sync --current-branch”不会转换为“git clone --single-branch -branch”
标签: git git-fetch shallow-clone