git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch mysql_db' HEAD
这就是我要删除的mysql_db
,这没关系。但现在我必须从我的所有标签中做到这一点。我怎么能这样做?
答案 0 :(得分:7)
您还必须重写标记名称(然后它们将指向重写的提交):
git filter-branch -f \
--index-filter 'git rm -r --cached --ignore-unmatch mysql_db' \
--tag-name-filter 'cat' -- --all
使用--all
重写所有提交,而不仅仅是当前HEAD
提交中可以提交的提交。
来自manpage of git filter-branch:
--tag-name-filter
[...]
原始标签不会被删除,但可以被覆盖;使用“--tag-name-filter cat”来简单地更新标签。在这种情况下,请务必小心,并确保备份旧标签,以防转换发生冲突。