Hudson - Git - 仅克隆所需分支

5

在Hudson中,是否有可能只克隆单个git分支?

使用Git插件版本2.2.0的Hudson版本2.2.0会克隆整个指定的项目,从而占用大量空间(预计会不断增长)。

提前致谢。


你觉得克隆分支没有达到你的期望,是吗? - VonC
4个回答

5
配置Hudson-Git插件的refspec为以下值似乎有效:
+refs/heads/master:refs/remotes/origin/master

2023年补充说明:

在2023年,仅进行上述操作是不够的,还必须在“高级克隆行为”下启用“初始克隆时尊重引用规范”的选项。

同样,在相同的位置可以启用“浅克隆”来节省更多空间(它会省略下载历史记录,仅下载最新版本)。


有趣的是。+1(可能比我的初始答案更容易) - VonC
这对我似乎不起作用。如果我使用命令行克隆并使用--single-branch选项,则本地仓库大小为200 MB,在Jenkins中却为2.6 GB。我在Jenkins git插件中尝试了许多选项,但迄今为止没有任何帮助。我使用的是Jenkins 2.387.2和git插件5.0.2。我尝试了上述分支特定符号,在“高级克隆行为”中关闭了“获取标签”,启用了“尊重初始克隆上的参考规范”和“浅克隆”,但没有任何帮助。 - David Balažic
请点击此处查看一个可行的解决方案(稍后我会尝试发布摘要):https://groups.google.com/g/jenkinsci-users/c/5eWKZfdu2Ls - David Balažic
点击这里查看一个可行的解决方案(稍后我会尝试发布一个摘要):https://groups.google.com/g/jenkinsci-users/c/5eWKZfdu2Ls - undefined

2

虽然不能直接操作,但如果你能调整Hudson Git 插件本身,你可以用正确的git命令克隆一个分支:

参见 "如何在git中克隆单个分支?"

这是自git1.7.10以来的可能性:

git clone <url> --branch <branch> --single-branch <folder>

请注意,git插件2.0将允许您指定正确的分支进行克隆

git 2.0


很好,我会检查Hudson-Git插件。我们还可以检查一下它是否在Hudson开发的流程中。 - crankparty

0
你混淆了clonecheckout。Clone克隆一个仓库,这就是Git的工作方式,checkout将使您切换到给定分支。Git是分布式的,因此使用clone将整个仓库复制到本地机器。因此,您可以访问已推送的任何分支、提交、标签。

同意克隆与检出是不同的。但是,我想问的是,我们是否可以使用“git archive”或其他git技巧来减少空间消耗。 - crankparty

0

Git的“分支”只是一个指向项目历史中某个位置的40字节书签 - 除非您的分支极其不同,否则您并没有真正节省太多空间,因为您将下载完整的历史记录。

如果节省空间是目标,也许可以使用“浅克隆”选项?这样只会下载一层历史记录,而不是全部。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接