2

这就是问题所在:我正在开发一些需要以某种方式存储用于外部服务的凭据的项目——例如,电子邮件地址和密码。我认为它属于“配置”,并决定将变量数据移动到程序读取的单独文件中。我不希望这个文件被推送到上游,因为在我的一些较小的程序中,为了个人需要而编写,我在生产环境中测试并且数据通常非常敏感。

另一方面,我不想要一个基本的.gitignore解决方案或它的等价物——而不是根本不上传文件,我宁愿在它的位置发送另一个文件,一个示例配置文件,同时保留“真实”文件在我电脑上的位置。有什么简单的方法可以实现吗?

如果您需要更多详细信息来回答这个问题,我更喜欢关于 Git VCS、Python 脚本和 Linux 操作系统的答案。

4

2 回答 2

1

一种可能的解决方案:

提交并推送一个“示例”配置文件。然后,对本地配置文件进行所需的修改。它现在将在 Git 中标记为已修改。

用于git update-index --assume-unchanged config永久忽略未来对配置文件的本地修改(用于--no-assume-unchanged恢复跟踪修改)。

这样,您将在上游存储库中有一个示例配置,在您的存储库中有一个自定义配置,并且您不会意外提交更改的配置,因为 Git 不会将其标记为已修改。

于 2013-01-27T19:24:14.473 回答
0

您可以做的另一件事是使用 .gitattributes 过滤器。它允许您指定某些文件以通过 unix 命令进行管道传输。您可以编写一个 ruby​​ 脚本来清除您的密码并用虚拟值替换它们,或者只使用 sed 或 awk。你可以比这更疯狂,也可以用它来做一些非常危险的事情,呵呵。有关详细信息,请参阅其他答案

于 2014-08-29T20:14:02.297 回答