git-lfs服务器端与二进制blob的客户端管理

时间:2016-03-06 03:20:29

标签: git git-lfs

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

git lfs track "*.pdf"

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

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

1 个答案:

答案 0 :(得分:1)

Git lfs管理客户端的所有内容,当您提取/推送文件时,它会使用smudgeclean filters

因此,如果另一位开发人员在没有使用git-lfs的情况下推送相同的 pdf文件,那么您就会遇到麻烦,因为它会覆盖pointer git-lfs替换实际文件。 git repo(你还有历史)。

如果该开发人员在没有安装git-lfs的情况下推送 new pdf文件,它将像git通常那样运行,将二进制文件推送到git repo。

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

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