【发布时间】:2026-02-08 12:00:02
【问题描述】:
我有一个 git 存储库,其中包含一些我希望删除的敏感内容的源文件(我不想删除该文件,只需修改其内容)。提交是在项目开发的早期(当时我们只有一个分支),但现在在 n 个其他分支中找到了它自己。
我可以运行任何 git-fu 来在所有分支中清理它吗?交互式变基一次只能对一个 Head 起作用。
我确实在 github 上找到了 this 命令:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch DotNet/src/ExternalLibs/GemBox/' \
--prune-empty --tag-name-filter cat -- --all
但它只适用于删除,而不适用于修改。
A-B-C-**STUPID**-D-E-F
\
\-G-H-I
\-J-K
【问题讨论】:
-
修改后的内容是不是也“敏感”了?
-
该代码包含一个带有许可证密钥的测试项目的代码文件,我们想用 shim 替换它。我们可以用新的提交来修复测试
标签: git rebase git-rebase git-rewrite-history git-branch-sculpting