2014-03-03 26 views
0

我們將git與我們的iOS應用程序一起使用,現在我們計劃將應用程序的代碼打開源代碼。問題是我們不希望人們訪問我們的API密鑰,因爲API本身不應該被公衆訪問。在之前提交的文件中卸載文件git

API密鑰全部位於APIConstants.h.m。我正在考慮在未來的提交中取消它們,但我知道人們仍然可以檢查更舊的提交。有什麼辦法可以禁止從舊的提交中檢出這兩個文件嗎?

其他解決方案,我能想到的是完全刪除.git文件夾,添加APIConstants.gitignore,並刪除所有的提交歷史爲代價的老毛病又犯git init

+0

的可能重複[刪除敏感文件,並從歷史的Git的提交(http://stackoverflow.com/questions/872565/remove-sensitive-files-and-their-commits-from-git - 歷史) - 特別參見使用B的答案FG;我聽說很多人都用這個成功了 – torek

+0

https://help.github.com/articles/remove-sensitive-data – abnvp

回答

1

做這樣的:

$ git rm --cached APIConstants.h 
$ echo APIConstants.h >> .gitignore 
$ git add .gitignore 
$ git commit -m "Remove and ignore APIConstants.h" 
1

我想你可以通過運行以下命令做到這一點: git的RM文件--cached

,然後添加文件到您的.gitignore文件,所以它不會再後來添加的。

0

添加文件的.gitignore將保證文件不會被納入未來的承諾。

但是,正如您所說,它已經可用,用戶仍然可以下載舊文件。你可以從完全庫中刪除他們..

git rm --cached <file> 

或者,如果你想告訴庫停止跟蹤文件,你可以使用..

git update-index --assume-unchanged <file> 

,這可以通過恢復使用,

git update-index --no-assume-unchanged <file>