Aks*_*ood 1 git github repository password-protection sensitive-data
我已将我的项目上传到 GitHub 公共存储库。但是其中一个文件包含我的密码信息。我已经做了几次提交。如何从初始提交中隐藏我的密码?
没有单独的密码文件。所以在这种情况下我不能使用 .gitignore 。密码被硬编码在处理应用程序主要逻辑的 app.py 文件中。所以,我不能使用 BFG Repo-Cleaner。是否可以通过覆盖先前的提交来删除文件并添加新文件?
我已经在文件中进行了更改并推送了一个 repo。但是,以前的提交仍然显示了我的密码信息。另外,我对创建一个新的 repo 和删除旧的 repo 不感兴趣(除非我别无选择)。
如果我得到一些帮助,我会很高兴。
提前致谢。
GitHub 有一篇文章专门介绍了这一点。检查它在这里。总结文章:您可以使用git filter-branch命令或BFG Repo-Cleaner。BFG Repo-Cleaner 使用起来更简单快捷,所以我使用它。要使用 BFG Repo-Cleaner,请按照以下步骤操作:
brew install bfg--mirror标志克隆您的 repo 的新副本:git clone --mirror git://example.com/some-big-repo.git
如果使用 SSH 或
git clone --mirror https://example.com/some-big-repo.git
如果使用 HTTPS。
这是一个裸存储库,因此您将无法看到您的文件,但它将是包含所有提交的存储库的完整副本。
java -jar bfg.jar --delete-files [FILE NAME] --no-blob-protection my-repo.git
或者如果安装到 PATH
bfg --delete-files [FILE NAME] --no-blob-protection my-repo.git
或从旧提交中删除密码
bfg --replace-text passwords.txt
git reflog expire --expire=now --all && git gc --prune=now --aggressive
进而
git gc
去除您不想推回您的存储库的不需要的数据。
git push- 请注意,因为您--mirror在克隆存储库时使用了该标志,所以当您推回您的存储库时,您还将推回引用更改。要阅读有关 BFG Repo-Cleaner 的更多信息,请访问此链接。