Git 如何清理敏感文本

有時候我們會在屬性文件中添加數據庫的連接參數等。

但是在提交的時候不小心將這些敏感連接參數和密碼也提交到服務器上了。

雖然很多公司都有防火牆只能內部訪問,但是還是非常不安全的。

這時候你需要一個 BFG Repo-Cleaner 這個工具了。

這個工具主要用於清理倉庫中的敏感文本包括提交歷史記錄中的,同時也一併將歷史記錄清理。

下載

下載地址爲:BFG Repo-Cleaner by rtyley ,你會下載一個 jar 的包。

假設我們需要清理倉庫名稱爲:rets-io-client,你首先需要將這個倉庫克隆到本地。

然後把下載的包放在和這個倉庫同級的目錄中。

假設我們的倉庫地址爲:D:\WorkDir\USRealEstate\Source-Code\rets-io-client

那麼你可以將這個包放在:D:\WorkDir\USRealEstate\Source-Code 目錄下面。

同時在 D:\WorkDir\USRealEstate\Source-Code 目錄下面創建一個 passwords.txt 文件

運行命令

在控制檯中運行下面的命令:

java -jar bfg-1.14.0.jar --replace-text passwords.txt rets-io-client

將你需要替換的字符串放到 passwords.txt 文件中。

例如我們需要替換的密碼爲 jfnsV4yHsDYaX4x9 那麼你需要將這個字符串添加到 passwords.txt 後再執行上面的命令。

 

2021-11-30_10-05-47

 

運行後的結果如上圖的內容。

如果你有多個字符串需要替換的話,可以重複上面的操作。

在完成上面的所有替換後,進入倉庫分別執行下面的 2 條 git 命令。

git reflog expire --expire=now --all

git gc --prune=now --aggressive

如果一切都沒有問題的話,再運行 git push 將修改推送到遠程倉庫中。

此時再查看你的提交記錄,所有敏感字符串應該都被替換掉了。

 

2021-11-30_10-38-50

 

在提交歷史中的字符串也會被替換成不可見的字符了。

 

https://www.ossez.com/t/git/13822

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章