作者:mobiledu2502938445 | 来源:互联网 | 2023-02-11 15:04
我试图了解两个选项"擦除存储库和强制克隆"和"清理结束前"之间的差异,以便拉出一个git repo.看两个选项的帮助部分,两者似乎都有类似的功能,我无法弄清楚差异.这是他们看起来的样子:
擦除存储库和强制克隆:
在构建之前删除工作区的内容,确保完全新鲜的工作区.
结账前清洁
通过删除所有未跟踪的文件和目录(包括.gitignore中指定的文件和目录),在每次检出之前清理工作区.它还会将所有跟踪的文件重置为其版本状态.这可确保工作空间处于与在全新的空目录中克隆和签出时相同的状态,并确保您的构建不受上一个构建生成的文件的影响.
我找不到两个选项之间的任何比较; 既不是Jenkins/GitPlugin wiki,也不是堆栈溢出,甚至不是谷歌.我们目前有两种选择,但我们计划通过删除"擦除存储库和强制克隆"选项来缩短构建时间.但是我不想在这样做时破坏任何功能.如果您确定,请解释其中的区别.提前致谢 :)
1> vins..:
擦除存储库和强制克隆将清理整个项目工作区并在构建之前再次克隆项目.它可能耗费时间取决于项目规模.如果项目为1GB,则每次构建时都会下载1GB.
结账前清理删除作为构建的一部分创建的文件 - 比如你的测试结果等 - 如果文件被更新则重置文件并在更新后提取最新的更改.这可确保工作空间处于与在全新的空目录中克隆和签出时相同的状态.它仅下载可能为几MB的增量.所以它耗时少.
因此,您可以在结帐前继续使用Clean,而不会影响构建.已使用此选项超过4年没有任何问题.
@Siddardha我们目前注意到.gitignore内部文件的差异。生成过程从第三方获取了一些依赖关系(在本例中,是使用composer将其提取到目录供应商中)现在,我们删除了依赖关系,仅使用“擦除存储库并强制克隆”文件夹确实已删除。使用“ git checkout”时,.gitignore中的文件/文件夹不会被删除。在90%的环境中,这是可以的,除了您要删除的东西。
@Siddardha:大部分时间你都很擅长"结账前清洁".结帐后我用干净.所以我结帐失败,我仍然有一个工作树快速检查).如果存在存储库损坏问题,则删除整个工作区很有用(我们偶尔会遇到这种情况......可能是因为@ 30G的大尺寸)