前言
对于程序员来说,公司就像是工地,代码就是我们的钢筋水泥。那在工地什么最重要呢?没错就是安全生产。本文要讨论的是开发中的合规安全。GitHub 作为当代开源社区的基础设施,不仅是个人开发者在上面维护项目,很多企业也会将内部优秀项目选择开源反馈社区和扩大社区影响力。然后,就出现了公司拖欠工资,员工怒将内部代码开源、员工将敏感信息上传。有些信息虽然看起来不怎么重要,但是如果被不怀好意的黑客盯上,就没有一篇雪花是干净的。
那如果安全隐患已经存在,我们该如何补救呢?答案是使用 git-filter 能力对 git 记录进行合并、删除等操作。git-filter-repo 正是这类工具的集大成者。下面就让我们一起学习下这款强大的 git log 操作工具吧。
git-filter-branch
git 自带的有一个 git-filter-branch 工具,我第一次使用是为了删除单个文件及其相关的 commit 记录。命令如下:
1 | git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch CHANGELOG.md' --prune-empty --tag-name-filter cat -- --all |
执行后,会收到如下的警告:
1 | WARNING: git-filter-branch has a glut of gotchas generating mangled history |
翻译过来如下:
1 | 警告:翻译过来如下:git-filter-branch有大量的问题,会产生错误的历史记录重写。 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 紫升的博客!
评论