我自己没有使用过,但是开源的BFG Repo-Cleaner 看起来可以满足您对简单性的要求,同时保留活动图表供审阅者查看。如果您希望保留您的私人工作副本,同时仍保持活动历史记录可见,则可以在回购的公开副本上完成此操作。
按照工具的usage instructions,您应该能够执行以下操作(假设您希望在新的 repo 副本中进行这些更改):
第一步是按照 GitHub 文档中的 instructions 复制 GitHub 上的存储库。
为此,首先create a new repository。
接下来,按照 GitHub 说明镜像存储库:
- 打开终端。
- 创建存储库的裸克隆。
$ git clone --bare https://github.com/exampleuser/old-repository.git
- 镜像推送到新存储库。
$ cd old-repository.git
$ git push --mirror https://github.com/exampleuser/new-repository.git
- 删除您之前创建的临时本地存储库。
$ cd ..
$ rm -rf old-repository.git
现在您有了重复的存储库,您可以运行 BFG Repo-Cleaner 将您想要隐藏的所有文本实例替换为 ***REMOVED***。
$ java -jar bfg.jar --replace-text replacements.txt my-repo.git
replacements.txt 文件将包含 SMTP、MongoDB URI 以及您想要隐藏的任何其他文本。
mongodb://my-username:my-password@host1.example.com:27017,host2.example.com:27017/my-database
marco-f@example.com
请注意,这不会更新 master/HEAD 分支上的最新提交,因此需要手动更改,然后提交。这可以通过使用 --amend 选项的最终提交来实现,或者通过在手动更改文件的情况下运行 BFG Repo-Cleaner 之前进行新的提交。
$ git commit --amend
现在已经进行了更改,可以将它们推送到 GitHub。
$ git push