何时使用Git LFS以及是否会影响CI的指南

95次阅读
没有评论

问题描述

在使用Git Large File System(Git LFS)时,有一个问题是何时决定将文件存储到Git LFS中,以及在这样做后,现有的持续集成(CI)配置是否会受到影响。有时候会将像gradlew.jar这样的JAR文件添加到存储库中。根据我个人的看法,像JAR这样的二进制文件不应该存储在Git中,因为它们不是会发生变化的文本文件,但是二进制文件不一定都很大。目前,我们有多个包含JAR文件的Git存储库。我想知道是否应该将所有这些JAR文件移到Git LFS中。

解决方案

以下是关于Git LFS使用的一些建议,但请注意具体操作可能因版本或工具差异而有所不同。

何时决定使用Git LFS

Git LFS的目的是在享受Git的同时,能够远程存储大文件,并对其进行缓存和索引。这减轻了存储大型二进制文件时下载整个存储库的负担。你可以在任何时候将文件存储到Git LFS中,但如果只有少量文件,这可能效率不高。特别是对于基本的gradlew JAR文件,实施此解决方案可能不是最佳选择。

通常情况下,你应该开始考虑使用Git LFS的情况包括:
– 你的Git存储库包含大文件(大约在MB数量级以上)。
– 这些文件代表存储库的主要内容。
– 这些文件会定期更新。
– 在CI工具中拉取/克隆存储库需要较长时间。

如果你考虑使用Git LFS来跟踪二进制文件的版本,我建议你考虑使用二进制存储库,如:
JFrog Artifactory
Apache Archiva
Sonatype Nexus

是否会影响现有的CI配置

如果你决定使用Git LFS,正常的Git命令将无法工作。你需要在设置完成后,要么创建指向Git LFS的符号链接,要么在CI工具中在git后面添加lfs。例如,git clone变为git lfs clone

请确保在进行任何更改之前备份你的数据,并在开始操作前了解你所使用的Git LFS版本和CI工具的支持情况。

总结

在使用Git LFS时,应根据存储文件的类型、大小和更新频率来决定何时使用,以及是否适合将其移至Git LFS。如果决定使用Git LFS,确保在CI配置中进行相应的调整,以便适应Git LFS的工作流程。

注意:本文中的操作建议可能因软件版本和工具的差异而有所变化,建议在操作前查阅官方文档或相关指南。

本文提供的信息仅供参考,不对任何因使用此信息而导致的损失负责。

正文完