如何“审查”Git存储库的历史记录?

6
我目前有一个私人的git仓库,用于存储我正在开发的一些软件。在某些配置文件中,仓库曾经包含其他人的个人信息,由于这些信息对跟踪和记录配置文件的工作原理非常有用,所以我将它们保存在了git中。git仓库还展示了配置文件随时间的变化,以及哪个版本需要什么。最近我想将该项目发布到github上,因此我创建了一个分支,并从头部删除了个人信息,并使用占位符替换了每个项目。
除了回溯到每个修订版本并“更改历史记录”之外,是否有一种方法可以通过在所有出现的情况下用新信息替换旧信息来“审查”旧信息,这样如果有人回滚,他们会看到占位符而不是个人信息?

删除.git文件夹(所有历史记录),并从您现有的安全文件开始?https://dev59.com/O2kw5IYBdhLWcg3wu9Fg - Matt Ball
Git仓库还显示了配置文件随时间的变化,就是哪个版本需要什么。这意味着我想保留一些历史记录,因为我发现它对未来的开发很有帮助,但其中大部分都是无关紧要的,并且会暴露身份信息。 - DavidJFelix
1个回答

6
你可以在其中运行 git filter-branch 命令,这将修改分支的历史并删除所需内容。然后你只需要添加一个示例(占位符)文件即可。参见 github 的删除敏感数据帮助页面

这会简单地过滤配置文件,还是逐行过滤修订记录?比如在第一个修订版本中,配置文件中写着“John Doe”,但在第二个修订版本中写着“Name: John Doe”。我能否将其过滤,使得第一个配置文件显示“[Name]”,第二个则显示“Name: [Name]”?我想保留编辑历史,同时避免保留我认为不相关和不必要分享的信息。 - DavidJFelix
@DavidJFelix,filter-branch 可以使用 --tree-filter 对内容进行任何操作,但是你需要编写自己的脚本或程序来实际执行每个版本所需的修改。 - wjl
@wjl 好的,这看起来很合理。那么,我会将其标记为已接受。剩下的部分我可以处理。 - DavidJFelix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接