Git 如何加密文件并将其存储在LFS上?
我知道如何通过git crypt对存储库中的文件进行加密:Git 如何加密文件并将其存储在LFS上?,git,encryption,git-lfs,git-filter,git-crypt,Git,Encryption,Git Lfs,Git Filter,Git Crypt,我知道如何通过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.cr
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):
。。。但是,如何在同一个文件中同时使用它们呢?
即使
.gittributes
在用于存储在LFS上的筛选器之前有用于加密的git筛选器,文件也不会被加密(git crypt status | grep somethingTo
报告“未加密”)。LFS未跟踪的所有其他*.crypt.*
文件都将正确加密
我想问题在于我的somethingTo.crypt.txt
现在只是存储库中的一个引用对象,而不是实际的(加密的)文件。但是我希望(多亏了git filter
s),文件在被推送到LFS存储之前会被过滤/加密
两个过滤器扩展是否相互兼容?如何使它们协同工作?您可以自己编写过滤器。你必须制作自己的组合过滤器(以及那些mods安装的任何其他属性),以达到你想要的效果,git不知道如何让第三方钩子相互配合 即使
.gittributes
在用于存储在LFS上的过滤器之前有用于加密的git过滤器,文件也不会被加密
这是因为属性不会累积,它们会覆盖。每个属性都有一个值,即上次匹配中指定的值。如果您想要一个组合了两个第三方工具效果的过滤器,那么您必须编写一个组合了这两个第三方工具效果的过滤器
git lfs track somethingTo.crypt.txt
git add .gitattributes # updated LFS rule for tracked file
git commit
git push