0

如果我跟踪所有pdf文件会发生什么:

git lfs track "*.pdf"

但是另一个没有安装的开发者git-lfs推送一个新pdf文件?它使用文本指针还是完整的二进制文件?服务器是负责对二进制 blob 进行版本控制还是客户端负责?

如果是服务器端,我基本上可以跟踪二进制类型一次,而不必担心其他开发人员将二进制 blob 推送到 git(这是gitlab)。

4

1 回答 1

1

Git lfs 管理客户端的所有内容,它在您拉/推文件时使用smudgeclean 过滤。

因此,如果另一个开发人员在不使用 git-lfs 的情况下推送相同的pdf 文件,那么您就有麻烦了,因为它将覆盖指针git-lfs 用 git repo 中的实际文件替换(尽管您仍然有历史记录)。

如果该开发人员在没有安装 git-lfs 的情况下推送一个的pdf 文件,它将像 git 一样正常运行,将二进制文件推送到 git 存储库中。

版本控制由指针本身的后端(git 后端而不是 lfs)处理,因为它现在只是文本,但客户端负责读取指针并从您在该 repo 的 .git 中指定的 lfs 端点检索正确的 blob /配置。

此行为独立于您正在使用的 lfs 实现 - 目前客户端也不发布带有 blob 本身的元数据,因此后端无法管理这一点。

于 2016-03-31T07:28:38.503 回答