我们将git与我们的iOS应用程序一起使用,我们现在正计划将应用程序的代码开源。问题是我们不希望人们访问我们的API密钥,因为API本身不应该被公众访问。
API密钥全部位于APIConstants.h
和.m
。我想在将来的提交中取消它们,但我知道人们仍然可以检查旧的提交。有没有什么办法可以禁用这两个文件的签出,即使是旧的提交?
我能想到的另一个解决方案是完全删除.git
文件夹,将APIConstants
添加到.gitignore
,然后再次执行git init
,代价是删除全部{{1}}我们的提交历史。
答案 0 :(得分:1)
我认为您可以通过运行以下命令来实现此目的: git rm --cached file
然后将该文件添加到.gitignore文件中,以便以后不再添加。
答案 1 :(得分:1)
这样做:
$ git rm --cached APIConstants.h
$ echo APIConstants.h >> .gitignore
$ git add .gitignore
$ git commit -m "Remove and ignore APIConstants.h"
答案 2 :(得分:0)
将文件添加到.gitignore将保证该文件不会包含在将来的提交中。
但是,正如您所说,它已经可用,用户仍然可以下载旧文件。你可以将它们从存储库中删除..
git rm --cached <file>
或者,如果您想告诉存储库停止跟踪文件,您可以使用..
git update-index --assume-unchanged <file>
这可以通过使用
来恢复git update-index --no-assume-unchanged <file>