如何从标签中永久删除git中的文件?

Sha*_*oon 2 git

git filter-branch -f --index-filter 'git rm -r --cached --ignore-unmatch mysql_db' HEAD

这就是我要删除的内容mysql_db,这很好.但现在我必须从我的所有标签中做到这一点.我怎样才能做到这一点?

kni*_*ttl 7

您还必须重写标记名称(然后它们将指向重写的提交):

git filter-branch -f \
  --index-filter 'git rm -r --cached --ignore-unmatch mysql_db' \
  --tag-name-filter 'cat' -- --all
Run Code Online (Sandbox Code Playgroud)

使用--all重写所有提交,而不仅仅是那些到达从目前的HEAD承诺.

git filter-branch联机帮助页:

--tag-name-filter

[...]

原始标签不会被删除,但可以被覆盖; 使用"--tag-name-filter cat"来简单地更新标签.在这种情况下,请务必小心并确保备份旧标签,以防转换发生冲突.