我正在尝试了解拉出git repo的“擦除仓库并强制克隆”和“在结帐前清洁”这两个选项之间的区别。查看这两个选项的帮助部分,它们似乎都具有相似的功能,我无法分辨出它们的区别。它们的外观如下:
清除存储库并强制克隆: 在构建之前,请删除工作空间的内容,以确保工作空间完全新鲜。 结帐前清洁 通过删除所有未跟踪的文件和目录(包括.gitignore中指定的文件和目录),在每次签出之前清理工作区。它还会将所有跟踪的文件重置为其版本状态。这样可以确保工作空间处于与您在全新的空目录中克隆并检出状态相同的状态,并确保您的构建不受先前构建生成的文件的影响。
清除存储库并强制克隆:
在构建之前,请删除工作空间的内容,以确保工作空间完全新鲜。
结帐前清洁
通过删除所有未跟踪的文件和目录(包括.gitignore中指定的文件和目录),在每次签出之前清理工作区。它还会将所有跟踪的文件重置为其版本状态。这样可以确保工作空间处于与您在全新的空目录中克隆并检出状态相同的状态,并确保您的构建不受先前构建生成的文件的影响。
我找不到这两个选项之间的任何比较。无论是在Jenkins / GitPlugin Wiki中,还是在堆栈溢出中,甚至在Google中都没有。目前,我们有两种选择,但我们计划通过删除“清除存储库并强制克隆”选项来减少构建时间。但是我不想在执行此操作时破坏任何功能。如果您确定,请说明差异。提前致谢 :)
清除存储库并强制克隆 将清理整个项目工作区,并在构建之前再次克隆项目。可能会很耗时,具体取决于项目规模。如果项目为1GB,则每次构建时都会下载1GB。
检出前先清除,然后再 删除作为构建的一部分创建的文件(例如测试结果等),如果文件已更新,则会重置文件;如果文件已更新,则会提取最新更改。 这样可以确保工作空间处于与克隆并在全新的空目录中签出相同的状态 。它仅下载可能只有几个MB的增量。因此,它消耗的时间更少。
因此,您可以 在结帐前 继续使用 Clean 而不影响构建。使用此选项已超过4年,没有任何问题。