【问题标题】:gitignore apikeys in my project我项目中的 gitignore apikeys
【发布时间】:2011-08-28 08:03:22
【问题描述】:

我想做一个java应用程序。这存储在 gitHub 上(因此使用 git 进行版本控制)。 现在这个程序在谷歌的例子中使用了 apikeys。 我想在版本控制系统中隐藏这个 Api 密钥(以便其他人无法使用它)。

我已经阅读了一些关于 .gitignore 文件的内容,但我不想从版本控制中删除整个文件。我只想隐藏apiKey不让别人看到。

我阅读了以下帖子,我认为这就是我正在寻找的内容,但我真的不知道该怎么做。

Can git automatically switch between spaces and tabs?

【问题讨论】:

    标签: java git api api-key


    【解决方案1】:

    您不能对文件进行版本控制并对其他人隐藏。提交的 ID 部分基于提交文件树的 ID,它基于该树的内容——文件名和内容。如果你改变了一个文件的内容,你就改变了它在 Git 中的身份。当你改变它的身份时,你就改变了它所在的树的身份,一直到提交。

    简而言之,没有。包含此文件的每个提交的 ID 将基于该文件的内容。向有权访问存储库的其他人隐藏文件的唯一方法是一开始就不要将其添加到存储库中。

    (如果您尚未发布存储库,您可以使用git filter-branch 重写历史记录以删除所有出现的文件。请注意,如上所述,这将更改许多提交的标识。)

    【讨论】:

    • 好的,谢谢。反正我不想隐藏整个文件,只隐藏文件中的Api密钥,因为api密钥与我有关,不允许其他人使用。但如果这是唯一可能的解决方案,我可以接受。谢谢。
    • 这个问题有一个标准的解决方案。假设文件名为config.txt。创建此文件的副本,config.txt.template。将此模板文件中的所有配置数据(包括 API 密钥)替换为占位符示例数据。然后将config.txt 添加到.gitignore 文件中。现在,您可以在不向存储库添加任何真实和/或敏感数据的情况下提交模板文件。要设置新的克隆,您只需将所有 foo.template 文件复制到 foo 并适当地编辑其内容。
    猜你喜欢
    • 2014-11-12
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2022-07-21
    相关资源
    最近更新 更多