2017-08-11 123 views
0

我们将我们的puppet配置存储在Git中。其中一些文件是在提交之前手动gpg加密的,并在结帐后手动解密。然而,前几天我合并了一个从HEAD身上取下的分支,这个分支变质了另一个人的变化。如果文件未被加密,git会正确合并所做的更改。如何防止在Git中加密(二进制)文件的破坏?

此文件包含敏感凭据,可以让系统脱机(如果不正确),所以它对于我们可以区分和查看随时间变化的重要性而言非常重要。

如何恢复可见性和git的高级合并更改能力,同时仍然保持文件内容的安全性?

+2

提交秘密与源代码一般可以被认为是一个不好的做法。 – quinz

+0

保持配置与配置的其余部分很方便,加密使我们能够做到这一点。但似乎git并非设计用于本地处理加密,而且我们还没有合并功能。你认为什么是一个更好的过程? –

回答

0

Git允许您设置二进制(或任何)文件的自定义转换器,以便在它们达到git-diff之前对其进行预处理。只要Git对它们进行区分,您可以使用此功能来解密文件。

下面的这个特点,这就是所谓textconv的例子:

的.gitconfig必须注明要执行的命令的的TEXTCONV司机:

[diff "odf"] 
    textconv=odt2txt 

.gitattributes必须文件到关联驱动程序:

*.odf diff=odf 

这个例子使用textconv来转换*.odf文件,但你可以使用任何你想要的任何函数处理任何文件。

这种方法至少可以让您在合并作为完整性检查时检查差异。