在git中的先前提交中取消暂存文件

时间:2014-03-03 02:49:31

标签: ios git version-control github bitbucket

我们将git与我们的iOS应用程序一起使用,我们现在正计划将应用程序的代码开源。问题是我们不希望人们访问我们的API密钥,因为API本身不应该被公众访问。

API密钥全部位于APIConstants.h.m。我想在将来的提交中取消它们,但我知道人们仍然可以检查旧的提交。有没有什么办法可以禁用这两个文件的签出,即使是旧的提交?

我能想到的另一个解决方案是完全删除.git文件夹,将APIConstants添加到.gitignore,然后再次执行git init,代价是删除全部{{1}}我们的提交历史。

3 个答案:

答案 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>