今天第一次用 Git LFS,按我的理解:
1. Git 默认是一个全量分布式版本管理系统。
2. Git LFS 则是用 文本指针(Pointer File) ,只有当我切换到某个 Commit/Branch 时,LFS 才会去 LFS 存储服务器上按需下载那个特定的大文件。
至于代价,第一个是「需要 Git 服务器开启 LFS 功能」,第二就是「离线工作本地版本切换时,若没有对应的 LFS 文件缓存,就需要联网才能下载了」。
PS.
#til
1. Git 默认是一个全量分布式版本管理系统。
git clone 会下载完整的 Commit 历史遗迹所有的文件差分数据。2. Git LFS 则是用 文本指针(Pointer File) ,只有当我切换到某个 Commit/Branch 时,LFS 才会去 LFS 存储服务器上按需下载那个特定的大文件。
至于代价,第一个是「需要 Git 服务器开启 LFS 功能」,第二就是「离线工作本地版本切换时,若没有对应的 LFS 文件缓存,就需要联网才能下载了」。
PS.
git clone 本身就能通过 --depth --single-branch --filter=blob:none 之类的方案来限制下载深度和范围(CI/CD 构建或快速查看代码时应当如此?)#til