网站的域名空间,西安网站建设云速,ai生成作文网站,俱乐部网站方案什么是lfs
Git 是分布式 版本控制系统#xff0c;这意味着在克隆过程中会将仓库的整个历史记录传输到客户端。对于包涵大文件#xff08;尤其是经常被修改的大文件#xff09;的项目#xff0c;初始克隆需要大量时间#xff0c;因为客户端会下载每个文件的每个版本**。Gi…什么是lfs
Git 是分布式 版本控制系统这意味着在克隆过程中会将仓库的整个历史记录传输到客户端。对于包涵大文件尤其是经常被修改的大文件的项目初始克隆需要大量时间因为客户端会下载每个文件的每个版本**。Git LFSLarge File Storage是由 Atlassian, GitHub 以及其他开源贡献者开发的 Git 扩展它通过延迟地lazily下载大文件的相关版本来减少大文件在仓库中的影响**具体来说大文件是在 checkout 的过程中下载的而不是 clone 或 fetch 过程中下载的这意味着你在后台定时 fetch 远端仓库内容到本地时并不会下载大文件内容而是在你 checkout 到工作区的时候才会真正去下载大文件的内容。
lfs实现原理
Git LFS 通过将仓库中的大文件替换为微小的指针pointer 文件来做到这一点。在正常使用期间你将永远不会看到这些指针文件因为它们是由 Git LFS 自动处理的 当你添加执行 git add 命令一个文件到你的仓库时Git LFS 用一个指针替换其内容并将文件内容存储在本地 Git LFS 缓存中本地 Git LFS 缓存位于仓库的.git/lfs/objects 目录中。 当你推送新的提交到服务器时新推送的提交引用的所有 Git LFS 文件都会从本地 Git LFS 缓存传输到绑定到 Git 仓库的远程 Git LFS 存储即 LFS 文件内容会直接从本地 Git LFS 缓存传输到远程 Git LFS 存储服务器。 当你 checkout 一个包含 Git LFS 指针的提交时指针文件将替换为本地 Git LFS 缓存中的文件或者从远端 Git LFS 存储区下载。
LFS 文件的指针文件内容 version https://git-lfs.github.com/spec/v1 oid sha256:5b62e134d2478ae0bbded57f6be8f048d8d916cb876f0656a8a6d1363716d999 size 285 参考文章
详解 Git 大文件存储Git LFS