我知道如何通过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过滤器,文件也不会加密(git crypt status | grep somethingTo报告“未加密”)。所有未被LFS跟踪的其他*.crypt.*文件都被正确加密。
我猜问题在于我的somethingTo.crypt.txt现在只是存储库中的引用对象,而不是实际的(加密的)文件。但是我希望(多亏了git-filter)文件在被推送到LFS之前会被过滤/加密。
两个过滤器扩展相互兼容吗?我如何让他们一起工作?
发布于 2020-10-22 18:54:29
你要自己做的过滤器。你将不得不做你自己的组合过滤器(和其他属性的mods安装),有你想要的效果,git不知道如何使第三部分挂钩相互配合,
即使
.gitattributes在用于存储LFS的筛选器之前有用于加密的git过滤器,该文件也不会被加密。
这将是因为属性不会累积,它们会覆盖。每个属性都有一个值,这是上一次匹配中指定的值。如果您想要一个结合两个第三方工具的效果的过滤器,您必须编写一个过滤器,它结合了这两个第三方工具的效果。
https://stackoverflow.com/questions/64488036
复制相似问题