git:更改文件中的一行以获得完整的历史记录

2024-01-08

当我启动 git repo 时,我提交了一些文件作为初始提交。现在,在多次提交之后,我注意到我在这些文件中包含了一行我不想发布的信息(与其余代码不同)。所以我想删除/更改这一行 and 保留其余的的代码。

搜索周围我发现了这个解决方案:插入一个空提交作为初始提交(此处描述:在 Git 中的根提交之前插入一个提交? https://stackoverflow.com/questions/645450/git-how-to-insert-a-commit-as-the-first-shifting-all-the-others),对其进行变基,然后通过修改编辑旧的第一次提交。不幸的是,在变基期间会出现许多残酷的合并冲突(如下所述:git:解决rebase引起的冲突 https://stackoverflow.com/questions/7194023/git-solving-conflicts-caused-by-rebase/7194301#7194301).

有没有不同的方法来解决我的问题,或者必须手动重新设置和编辑所有冲突?

提前致谢 :)


以下命令将从所有分支的文件历史记录中删除有问题的行:

git filter-branch --tree-filter 'sed -i "/sensitive information/ d" filename' -- --all

这会检查每个修订版,运行sed命令,然后提交该修订。

The sed在这种情况下,命令匹配包含该模式的任何行sensitive information在名为filename并删除这些行。

注意:如果你有备份就好了,然后尝试一下sed首先单独编写脚本以确保它正在执行您想要的操作,因为它可能需要相当长的时间才能在很长的历史记录上运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git:更改文件中的一行以获得完整的历史记录 的相关文章

随机推荐