为什么 Git LFS 允许我锁定不可锁定的文件?
Why does Git LFS allow me to lock non-lockable files?
我是 运行 Git LFS 3.1.1。我的 .gitattributes 文件包含以下内容:
*.png filter=lfs diff=lfs merge=lfs -text
然而,当我执行以下操作时(如果重要,Test.png 已经被推送):
>git lfs lock Test.png
Locked Test.png
>git lfs locks
Test.png MrBoy ID:2
在这种情况下 git lfs lock
肯定会失败,因为 lockable
不是一个属性?这是limitation/bug还是我的误会?
Git LFS 允许您锁定任何文件。 lockable
属性控制树中的文件是否 read-only 除非在启用该选项时被锁定,仅此而已。
原因是用户有许多不同的工作流程,GitLFS 尽量不过多地规定工作流程。此外,根据设计,Git LFS 服务器可能 运行 独立于对存储库的访问,因此服务器实际上可能知道也可能不知道文件是否可锁定。当然,可以构建一个 确实 具有该知识并拒绝此行为的服务器,但我不知道有任何服务器。
我是 运行 Git LFS 3.1.1。我的 .gitattributes 文件包含以下内容:
*.png filter=lfs diff=lfs merge=lfs -text
然而,当我执行以下操作时(如果重要,Test.png 已经被推送):
>git lfs lock Test.png
Locked Test.png
>git lfs locks
Test.png MrBoy ID:2
在这种情况下 git lfs lock
肯定会失败,因为 lockable
不是一个属性?这是limitation/bug还是我的误会?
Git LFS 允许您锁定任何文件。 lockable
属性控制树中的文件是否 read-only 除非在启用该选项时被锁定,仅此而已。
原因是用户有许多不同的工作流程,GitLFS 尽量不过多地规定工作流程。此外,根据设计,Git LFS 服务器可能 运行 独立于对存储库的访问,因此服务器实际上可能知道也可能不知道文件是否可锁定。当然,可以构建一个 确实 具有该知识并拒绝此行为的服务器,但我不知道有任何服务器。