根据git文档,我可以这样从我的repo历史记录中删除文件:
我尝试过这个,但出现了错误:
导致错误。
如果我运行
所以,它确实存在。 如何使用
git filter-branch --tree-filter 'rm -rf filename' HEAD
我尝试过这个,但出现了错误:
You need to run this command from the toplevel of the working tree.
所以,我尝试了这个,并得到了相同的错误:
git filter-branch --index-filter 'rm -f /dist/bikeMap.html' HEAD
在查看了多个stackoverflow问题后,我也尝试了
git filter-branch --index-filter 'rm -f /dist/bikeMap.html' master..HEAD
git filter-branch --tree-filter 'rm -f /dist/bikeMap.html' --all
git filter-branch --tree-filter 'rm -f /dist/bikeMap.html' -- --all
git filter-branch --tree-filter 'rm -f /dist/bikeMap.html' master
等等。所有的都显示相同的错误。
git status
显示如下:
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
我的git版本是2.11.0
。
编辑:我现在也尝试过:
git filter-branch --index-filter "git rm --cached --ignore-unmatch dist/bikeMap.html" HEAD
git filter-branch --index-filter "git rm --cached --ignore-unmatch dist/bikeMap.html" -- HEAD
git filter-branch -f --index-filter 'git rm --cached --quiet --force "dist/bikeMap.html"' --prune-empty -- HEAD
git filter-branch -f --index-filter 'git rm --cached --quiet --force dist/bikeMap.html' --prune-empty -- HEAD
git filter-branch -f --index-filter 'git rm --cached --quiet --force dist/bikeMap.html' --prune-empty -- master
git filter-branch -f --index-filter 'git rm --cached --quiet --force dist/bikeMap.html' --prune-empty master
git filter-branch -f --index-filter 'git rm --cached --quiet --force /dist/bikeMap.html' --prune-empty master
git filter-branch -f --index-filter 'git rm --cached --quiet --force /dist/bikeMap.html' --prune-empty HEAD
同样的错误。
编辑:进展!
git filter-branch --index-filter 'git rm --cached --quiet --force dist/bikeMap.html' --prune-empty
导致错误。
Rewrite 419e8702fd8a5fe9ddad59a0fd7ff008edffdeab (1/47) (0 seconds passed, remaining 0 predicted)
fatal: pathspec 'dist/bikeMap.html' did not match any files
index filter failed: git rm --cached --quiet --force dist/bikeMap.html
如果我运行
ls dist/bikeMap.html
,我会得到:dist/bikeMap.html
所以,它确实存在。 如何使用
git filter-branch
从我们的仓库中删除文件?
--ignore-unmatch
。 - Romain Valeri