如果我跟踪所有pdf
文件会发生什么:
git lfs track "*.pdf"
但是另一个没有安装的开发者git-lfs
推送一个新pdf
文件?它使用文本指针还是完整的二进制文件?服务器是负责对二进制 blob 进行版本控制还是客户端负责?
如果是服务器端,我基本上可以跟踪二进制类型一次,而不必担心其他开发人员将二进制 blob 推送到 git(这是gitlab
)。
Git lfs 管理客户端的所有内容,它在您拉/推文件时使用smudge
和clean
过滤。
因此,如果另一个开发人员在不使用 git-lfs 的情况下推送相同的pdf 文件,那么您就有麻烦了,因为它将覆盖指针git-lfs 用 git repo 中的实际文件替换(尽管您仍然有历史记录)。
如果该开发人员在没有安装 git-lfs 的情况下推送一个新的pdf 文件,它将像 git 一样正常运行,将二进制文件推送到 git 存储库中。
版本控制由指针本身的后端(git 后端而不是 lfs)处理,因为它现在只是文本,但客户端负责读取指针并从您在该 repo 的 .git 中指定的 lfs 端点检索正确的 blob /配置。
此行为独立于您正在使用的 lfs 实现 - 目前客户端也不发布带有 blob 本身的元数据,因此后端无法管理这一点。