【问题标题】:How can I add a xml file from /res/values to my gitignore in my Android project?如何在我的 Android 项目中将 xml 文件从 /res/values 添加到我的 gitignore?
【发布时间】:2015-06-30 12:08:28
【问题描述】:

我在 /res/values 文件夹中添加了一个单独的 xml 文件,其中包含我的应用程序使用的秘密 api 密钥。

api_key.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="api_key" type="string">my_key</item>
</resources>

现在我想从 git 中排除它。我该怎么做?

我将此行添加到项目根目录中的.gitignore 文件中

/app/src/main/res/values/api_key.xml

但它不起作用。推送项目内容后,该文件仍然出现在 Github 上。

【问题讨论】:

  • 在将文件声明为 .gitignore 之前,您是否已将文件添加到 git 中?
  • 是的,我首先添加了文件api_key.xml,然后将额外的行添加到gitignore
  • 运行git rm --cached /app/src/main/res/values/api_key.xml并再次检查

标签: android xml git api key


【解决方案1】:

Git 的忽略系统仅适用于尚未跟踪的文件。因为您已经提交了文件,所以忽略它不会有任何作用。

  1. 首先,也是最重要的,使 API 密钥失效。

    您已经发布了它,但您无法再次确保该密钥的安全。生成一个新的密钥以供以后使用。 不要跳过这一步。有些机器人的生活目的是在 GitHub 上寻找泄露的 API 密钥。

  2. 从 Git 中删除文件,可能使用存储库根目录中的 git rm --cached app/src/main/res/values/api_key.xml。这将从您的本地存储库中删除该文件,但将其保留在您的本地工作副本中。由于不再跟踪该文件,因此您的忽略现在将生效。

    使用步骤 1 中的新 API 密钥更新文件。

  3. (可选)添加一个占位符文件,例如app/src/main/res/values/api_key.xml.sample,到您的存储库。该文件不应包含 API 密钥,而应是您需要的文件的骨架,例如

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <item name="api_key" type="string">DUMMY_API_KEY</item>
    </resources>
    

    应鼓励从事该项目的开发人员将此文件复制到 api_key.xml 并添加适当的 API 密钥。

  4. 推送到 GitHub。现有文件将被删除,其历史记录将保留在存储库中。没关系,因为您已使泄露的 API 密钥无效。

【讨论】:

    【解决方案2】:

    您必须删除它才能将其从 github 中删除。忽略只是说“不要对匹配的东西进行任何更改......”

    应该这样做:

    git rm --cache api_key.xml
    

    此命令表示从缓存中删除文件,但将文件保留在原处。我很确定这会告诉 Github 将其从当前头部中删除。但是,它不会删除更改历史记录。

    如有任何疑问,请备份。我不负责……(笑)

    【讨论】:

      猜你喜欢
      • 2017-08-01
      • 2023-04-03
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2014-11-12
      • 1970-01-01
      • 2015-09-14
      相关资源
      最近更新 更多