2016-01-17 53 views
2

我有一個本地項目,我一直在使用一段時間。在這個項目中有一些包含密碼的配置數據。我現在想讓這個項目在Github上公開,並且想要分割配置數據,而不是像我從一開始就應該做的那樣檢查敏感數據。但是,即使在HEAD中執行此操作,數據在提交歷史記錄中仍然可用。從提交歷史中刪除敏感配置數據

有沒有辦法解決這個問題,或者我必須刪除所有舊的提交,只使用公共回購中的一個最新的清潔提交?

在最具代表性的可用選項之間?

回答

3

有一個很棒的Git功能叫做filter-branch。它允許你重新創建一個Git歷史記錄,在每一步應用一個命令。在這種情況下,你會用它來刪除敏感文件:

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch my/sensitive/file' HEAD 

值得指出的是,與所有這些混帳魔術,新改寫的分行將有一個不同的「家族樹」,以原始的,所以你將無法來回合併。換句話說,任何從事原始回購的人都需要在提交任何工作前取回新的分支。