0

我正在使用 Jenkins 从 git 存储库中提取特定分支。.git 文件夹大约是它正在拉取的项目大小的 5 倍!我试过git gc --aggressive --prune了,但问题仍然存在。

我永远不会从 Jenkins 推送回存储库。我只需要快速检查对 repo 的更改,并在发现任何更改时获取这些更改并构建项目。如果这是历史问题,显然我可以没有。

我专门使用 git 插件,因此为此量身定制的方法将是理想的,因为每次都会进行初始提取。如果我必须在获取后运行命令,我会这样做。

4

1 回答 1

1

通常的答案是:忽略 .git 文件夹的大小。当您拉入更改时,只会复制更改,而不是完整的 git 存储库。(除非您在构建之前删除 jenkins 工作区,但这不是一个好主意,因为它会迫使您的工作在每次构建时进行完整克隆。)

如果您担心获得干净的构建,请选中该框:结帐后清洁。它使 Jenkins 在构建之前运行 git clean"。

如果你担心磁盘空间,就买一个大磁盘。或者,如果您使用的是小型 SSD,请安装 postbuild 插件并从 postbuild 步骤运行“git clean -fxd”以清理工作区。

如果以上都不适合你,那么你所能做的就是等待。部分 git checkout 支持将来可能会变得更好。或者您可以使用 Subversion 或其他一些非分布式版本控制系统。几乎所有的分布式系统都依赖于完整的历史可用。

于 2012-04-27T21:08:43.523 回答