2015-04-22 28 views
0

我向我的/ res/values文件夾中添加了一個單獨的xml文件,其中包含我的應用使用的一個祕密API密鑰。如何在我的Android項目中將/ res/values的xml文件添加到我的gitignore中?

api_key.xml

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

現在我想從混帳排除。我怎樣才能做到這一點?

我加入這行來.gitignore文件在我的項目的根

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

,但它不工作。在推送項目內容後,該文件仍然出現在Github上。

+0

你把這個文件添加到git之前把它聲明爲.gitignore? – Blackbelt

+0

是的,我第一次添加文件'api_key.xml',然後將額外的行添加到'gitignore' – user2426316

+0

運行'git rm --cached/app/src/main/res/values/api_key.xml',然後再次檢查 – Blackbelt

回答

0

你將不得不刪除它從github中刪除它。忽略只是說「不包括匹配,事情的任何變化......」

這應做到:

git rm --cache api_key.xml 

這條命令的意思,除去從緩存中的文件,但保留在文件中地點。我很確定這會告訴Github將它從目前的頭上移除。但是,它不會刪除更改歷史記錄。

如果有任何疑問,請將其備份。我不負責......(笑)

2

Git的忽略系統只適用於尚未跟蹤的文件。因爲你已經提交了這個文件,忽略它不會做任何事情。

  1. 首先,最重要的是,使API密鑰無效。

    您已經發布了它,並且沒有什麼可以使該密鑰再次安全。生成一個新密鑰以便繼續使用。 不要跳過這一步。有些機器人的目的是在GitHub上查找泄漏的API密鑰。

  2. 從Git中刪除文件,可能使用git rm --cached app/src/main/res/values/api_key.xml從版本庫的根目錄中刪除。這將從您的本地存儲庫中刪除該文件,但將其保留在本地工作副本中。由於文件不再被跟蹤,您的忽略現在會生效。

    更新步驟與新的API密鑰的文件1.

  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密鑰無效。

+0

感謝您指出如此清楚!我正在與一個假人 – user2426316

+0

@ user2426316,我很高興你發現它有幫助。請不要忘記[接受一個答案,並選擇提供多個有用答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。這會向其他用戶顯示您找到解決方案。 – Chris

相關問題