为什么加密文件有帮助:

为什么加密文件有帮助:

我使用 git 作为许多项目的版本控制,这些项目除了源代码之外还包含大量报告和敏感文件。

我所有的存储库目前都是私有的,但我希望将其中一些存储库公开。如上所述,我希望隐藏一些文件(或可能是目录)不公开。这可能吗?如果不行,有没有更好的方法?

答案1

在 git 存储库中隐藏特定信息并不是其设计目的之一。据我所知,这也是不可能的。一种可能有效的方法是拥有一个公共和私有 git 存储库,并将私有存储库作为公共存储库的 git 子模块,尽管我从未尝试过。但这可能比它的价值更麻烦,并且可能会在某些时候造成混淆,导致您将私有数据放在公共存储库中。所以也许你应该有两个完全独立的存储库。

答案2

通过加密文件应该可以实现:https://git-secret.io/

为什么加密文件有帮助:

git-secret 如何解决这些问题?git-secret 加密文件并将其存储在 git 存储库中,因此您将拥有每次提交的所有更改。

使用公钥加密的文件不能被没有私钥访问权限的其他方读取,因此可以安全地将其上传到公共存储库。*

git-secret 是一个 bash 工具,用于将您的私人数据存储在 git repo 中。它怎么样?基本上,它只是使用 gpg 加密所有您信任的用户的公钥所跟踪的文件。

该工具提供了一种使用多个公钥(来自不同人)加密/解密文件的方法。

来自 git-secret 页面的使用说明:

用法:在存储库中设置 git-secret 以下步骤涵盖使用 git-secret 的基本过程:

在开始之前,请确保您已经创建了 gpg RSA 密钥对:由您的电子邮件地址标识的公钥和密钥。

从现有或新的 git 存储库开始。您将使用“git secret”命令添加密钥环和信息,以使 git-secret 隐藏和显示此存储库中的文件。

通过运行 git secret init 命令初始化 git-secret 存储库。将创建 .gitsecret/ 文件夹,请注意,应签入 .gitsecret/ 文件夹中的所有内容,/除/ random_seed 文件外。换句话说,在 .gitsecret 中的文件中,只有 random_seed 文件应在您的 .gitignore 文件中提及。

通过运行 git secret tell 将第一个用户添加到 git-secret repo 密钥环[电子邮件保护]

现在是时候在 git-secret 存储库中添加您想要加密的文件了。可以通过运行 git secret add 命令来完成。确保这些文件被 .gitignore 中的提及忽略,否则 git-secret 将不允许您添加它们,因为这些文件可能以未加密的形式存储。

完成后,运行 git secret hide 来加密您通过 git secret add 命令添加的所有文件。数据将使用 git secret tell 命令描述的公钥进行加密。使用 git secret hide 加密数据后,可以安全地提交更改。注意:建议将 git secret hide 命令添加到您的预提交钩子中,这样您就不会错过任何更改。

稍后,您可以使用 git secret reveal 命令解密文件,或者使用 git secret cat 命令将其内容显示到 stdout。如果您在 GPG 密钥上使用了密码(始终建议这样做),它会要求您输入密码。然后您就大功告成了!

* 量子计算将来可能会改变这一点。

相关内容