请问 github 项目如何删除或更新之前记录?
描述:这次被第三方扫到有资安问题,此项目已有几千次commit,发现第435次被员工上传敏感资料 + 几次commit message也有问题个人知识:我个人只会覆盖最新一笔的救援方式,想不到如何无害解决此问题能想到解决方式:最差情况可能需要狠下心全部git重来,但之后无法再查之前 history
回复
1个回答

test
2024-06-19
上传的敏感资料是否有多次变更?
- 如果只有在
commit 435
的时候提交了,可以在435
之后创建一个分支,把对应的敏感文件目录添加到.gitignore
中,把敏感目录移出项目目录,然后把.gitignore
的修改和敏感文件目录的remove
记录提交。最后把主线分支rebase
到你创建的新分支上面。最后再用rebase
把新的 Commit 用squash
合并到commit 435
中。这样敏感文件的commit历史就没有了。 如果你的敏感文件有很多次修改。那么Git的推荐修改方式是使用 git-filter-repo
至于Commit Message 你直接在 rebase
的过程中选择对应的提交记录把标识从 pick
改成 edit
就可以修改了。在操作的过程中 Git 会在终端提示你如何操作。
最后完成之后需要 git push -f
强制推送到远端。所以你如果不是特别熟悉 rebase
的话,最好把原始分支做一个备份再进行 rebase
(默认你不知道怎么找已经被 drop
掉的提交记录 hash
值)
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容