如何加密文件并将其存储在LFS上?

问题描述

我知道如何通过 git-crypt 加密存储库中的文件

echo "*.crypt.* filter=git-crypt diff=git-crypt" > .gitattributes
echo "supersecret info" > somethingTo.crypt.txt
git add .gitattributes somethingTo.crypt.txt
git crypt status   # somethingTo.crypt.txt results encrypted
git commit
git push

并且我知道如何使用 git-lfs (在自托管的GitLab上;在项目设置中启用LFS)存储文件

git lfs track somethingTo.crypt.txt
git add .gitattributes    # updated LFS rule for tracked file
git commit
git push

...但是,如何在同一个文件上同时使用它们?


即使.gitattributes具有 git-filter 用于加密之前用于存储在LFS上的过滤器,文件也不会得到加密({{1 }}报告“未加密”)。 LFS未跟踪的所有其他git crypt status | grep somethingTo文件都已正确加密。

我想问题是我的*.crypt.*现在只是存储库中的参考对象,而不是实际的(加密)文件。但我希望(由于somethingTo.crypt.txt的影响),文件会在被推送到 LFS存储之前被过滤/加密。


两个过滤器扩展是否彼此兼容?如何使它们一起工作?

解决方法

撰写过滤器,您可以自己做。您必须制作自己想要的效果的组合过滤器(以及这些mod安装的任何其他属性),git不知道如何使第三方挂钩相互配合,

即使.gitattributes在用于存储在LFS的过滤器之前具有用于加密的git-filter,文件也不会被加密

那是因为属性没有累积,所以它们会被覆盖。您会为每个属性获得一个值,即最后一个匹配项中指定的值。如果您想要一个结合了两个第三方工具效果的过滤器,则必须编写一个结合这两个第三方工具效果的过滤器。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...