我已经在GitHub公共仓库上上传了我的项目。但是其中一个文件包含我的密码信息。我已经做出了几项承诺。我怎样才能在初次提交时隐藏我的密码?
没有单独的密码文件。因此,在这种情况下,我无法使用.gitignore。密码硬编码在处理应用程序主要逻辑的app.py文件中。因此,我不能使用BFG Repo-Cleaner。是否可以通过覆盖先前的提交来删除文件并添加一个新文件?
我已经在文件中进行了更改,并推送了一个仓库。但是,以前的提交仍显示我的密码信息。另外,我对创建新的存储库和删除旧的存储库不感兴趣(除非我别无选择)。
如果我能得到一些帮助,我会很高兴。
提前致谢。
GitHub上有一篇关于此的文章。检查它在这里。总结一下文章:你可以使用git filter-branch
命令或BFG Repo-Cleaner。BFG Repo-Cleaner使用起来更容易,更快捷,因此我使用了它。要使用BFG Repo-Cleaner,请执行以下步骤:
brew install bfg
--mirror
标志克隆你的仓库的新副本: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的更多信息,请访问此链接。
这是一条评论(一个好评论,没关系)。答案绝不能仅是链接。查看 为什么需要50信誉来评论我可以做什么, 即使链接断开,答案也应有效。
感谢您对本网站进行编辑和反馈,您的回答对本网站而言更为可接受,并且适用于“问答”格式。:)
谢谢,帕特里克。感谢您的努力。我必须详细阅读。但是我需要有密码的文件。因为该文件处理了我的应用程序的主要逻辑。因此,我无法删除该文件。
嗨,AkshayC。我已经回答了问题,这是指向回答您问题的答案的链接。stackoverflow.com/a/2397905
@PritamSangani非常感谢您提供有关BFG Repo-Cleaner的详细信息。但是在这种情况下,它对我没有用,因为密码保存在处理该应用程序主要逻辑的同一文件中。因此,我无法删除此文件。有没有办法通过覆盖先前的提交来删除文件并上传新文件?