所以我在之前的提交中错误地提交了我的secrets.yml(yikes !!)并且我想清理我的git提交历史.似乎禁食最简单的方法是使用BFG.我已经下载了jar文件并安装了Java是必需的,并且我创建了一个我的repo的镜像 - 但是当我按照文档运行命令时:
java -jar bfg.jar --delete-files secrets.yml my-repo.git
我收到了错误 Unable to access jarfile bfg.jar
文档非常漂亮,但没有说明我应该做些什么来安装它或让它运行,或链接到我的镜像仓库,我很困惑.我看了一个youtube教程,说我应该使用像这样的命令创建一个符号链接;
ln -s ~/bfg-1.11.6.jar /usr/local/bin/bfg
运行bfg,除了我不确定该命令的第二部分是指(/usr/local/bin/bfg
)或它应该指向我的情况,因为这对我来说不起作用.我将jar文件保存在用户根目录中.我需要搬家吗?如何在镜像仓库上运行BFG,运行时我是否应该在镜像应用程序目录中?或者从应用程序外部运行它?
2015:从文档中,它应该是:
java -jar bfg.jar <options> yourrepo
Run Code Online (Sandbox Code Playgroud)
如果出现“ Unable to access jarfile bfg.jar
”之类的错误,请尝试使用 jar 的完整路径/home/user/path/to/bfg.jar
。
如果 jar 配置为使用 java 运行,那么/usr/local/bin/bfg
将是引用正确 bfg jar 的符号链接的路径。
替代方法在“删除敏感数据”中描述
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch Rakefile' \
--prune-empty --tag-name-filter cat -- --all
Run Code Online (Sandbox Code Playgroud)
或者(2017 年 11 月更新),正如JeremyDouglass所评论的,
如果你下载最新的(例如,从16年1月12日,中
bfg-1.12.6.jar
),你只需要在本地临时目录只(没有路径,没有符号连接)使用标准的命令,那么你可以简单地重命名的jar:
mv bfg-1.12.16.jar bfg.jar
java -jar bfg.jar --delete-files bad.txt repo.git
Run Code Online (Sandbox Code Playgroud)
2019-2020:最近,您现在将使用 You should use git filter-repo
(我在此处提到的)。
首先安装它。( python3 -m pip install --user git-filter-repo
)
然后,使用基于路径的过滤器:
git filter-repo --path secrets.yml --invert-paths HEAD
Run Code Online (Sandbox Code Playgroud)
HEAD 意味着它只会更改您当前的分支提交。
删除 HEAD,它将检查您所有分支中的所有提交。
归档时间: |
|
查看次数: |
4366 次 |
最近记录: |