假设很久以前有人在一些源代码的评论中放置了一个重要的个人身份信息。
进一步假设源代码存在于一个仍处于活动状态的CVS存储库中,并且该repo又被导入到Git存储库(当然还有一些克隆)。
在这个噩梦场景中,CVS或Git中提供以下任何解决方案:
完全删除存储库中的文件,以便无法检出带有PII的旧版本,或
修改所有过去的修订,以便用X替换PII,比方说?
我有一种感觉可能可以使用CVS,而且在Git中可能根本没有,但我不确定。
感谢您的帮助。
答案 0 :(得分:5)
对于git,我认为这很容易,因为你可以自由编辑所有历史记录(在存储库中,你也有写访问权,显然,克隆当然会保持不变,直到它们再次更新并进行垃圾收集)。见这里:
http://help.github.com/remove-sensitive-data/
我想,对于CVS,你甚至可以直接使用RCS文件,但我对CVS不是很有经验。
补充:因为它不是关于删除某些文件,而是基本上“在它们被投入之前更改某些文件”,所以可能已经足够执行git rebase -i
并编辑引入PII的那些提交。您可能需要修复稍后删除PII的提交中的一些冲突,但我猜,没关系。优点是您只需要修复那些实际引入/更改PII的提交。