gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:54:36 26 4
gpt4 key购买 nike

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

四处搜索我找到了这个解决方案:插入一个空提交作为初始提交(此处描述:Insert a commit before the root commit in Git?),对其进行 rebase ,然后通过修改编辑旧的第一个提交。不幸的是,在 rebase 期间会出现许多残酷的 merge 冲突(如此处所述:git: solving conflicts caused by rebase)。

是否有其他方法可以解决我的问题,或者必须手动修改和编辑所有冲突?

提前致谢:)

最佳答案

这是一个命令,可以从所有分支的文件历史记录中删除违规行:

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

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

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

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

关于git:更改文件中的一行以获得完整的历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com