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

问题描述 投票:0回答:1

我知道如何通过 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
在用于存储在LFS上的过滤器之前有用于加密的git-filter,文件也不会被加密(git crypt status | grep somethingTo
报告“未加密”)。 LFS 未跟踪的所有其他 
*.crypt.*
 文件均已正确加密。

我猜问题在于我的

somethingTo.crypt.txt

 现在只是存储库中的引用对象,而不是实际的(加密的)文件。但我希望(感谢 
git-filter
)文件在
被推送到LFS Store之前被过滤/加密。


这两个过滤器扩展是否相互兼容?如何让他们一起工作?

git encryption git-lfs git-filter git-crypt
1个回答
1
投票
您可以自己构建过滤器。你必须制作自己的组合过滤器(以及这些 mods 安装的任何其他属性)来达到你想要的效果,git 不知道如何使第三方钩子相互配合,

即使

.gitattributes

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

那是因为属性不会累积,而是会覆盖。每个属性都会获得一个值,即上一次匹配中指定的值。如果您想要一个结合了两个第三方工具的效果的过滤器,您必须编写一个结合这两个第三方工具的效果的过滤器。

© www.soinside.com 2019 - 2024. All rights reserved.