1. 程式人生 > >GitLab永久刪除敏感信息或大文件

GitLab永久刪除敏感信息或大文件

推送 path itl git clone https 工具 windows 下載 ofo

有一個開源工具BFG可以實現這樣的功能
對於已經拉取下來的代碼,無能為力,因為別人已經看到了

安裝JAVA環境

下載 jdk-8u201-windows-x64.exe,一路回車
配置環境變量
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_201
PATH中添加:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

清洗代碼

因為Gitlab默認開啟了分支保護,不允許強制推送,需要關閉分支保護

git clone --mirror git://example.com/some-big-repo.git
刪除大文件:
java -jar bfg.jar --strip-blobs-bigger-than 100M --replace-text password.txt repo.git
cd repo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push

不知什麽原因,倒數二三行推送不到Gitlab,需要登陸服務器單獨執行
清洗完畢,客戶端需要執行 git reset --hard origin/master

來避免再次提交敏感信息 ,最後開啟分支保護

GitLab永久刪除敏感信息或大文件