gpt4 book ai didi

git - 在 Github repo 上的所有先前提交中 stash 密码

转载 作者:行者123 更新时间:2023-12-05 00:48:49 24 4
gpt4 key购买 nike

我已将我的项目上传到 GitHub 公共(public)仓库。但是其中一个文件包含我的密码信息。我已经做出了一些 promise 。如何在初始提交时 stash 我的密码?

没有单独的密码文件。所以在这种情况下我不能使用 .gitignore 。密码被硬编码在处理应用程序主要逻辑的 app.py 文件中。所以,我不能使用 BFG Repo-Cleaner。是否可以通过覆盖先前的提交来删除文件并添加新文件?

我已经在文件中进行了更改并推送到了一个 repo。但是,以前的提交仍然显示了我的密码信息。另外,我对创建新的 repo 并删除旧的 repo 不感兴趣(除非我别无选择)。

如果我能得到一些帮助,我会很高兴。

提前致谢。

最佳答案

GitHub 有一篇文章正好说明了这一点。看看here .总结这篇文章:您可以使用 git filter-branch 命令或 BFG Repo-Cleaner。 BFG Repo-Cleaner 使用起来更容易、更快捷,所以我使用它。要使用 BFG Repo-Cleaner,请按以下步骤操作:

  1. Download项目 repo 中的 jar 文件或使用 macos 使用 brew install bfg
  2. 使用 --mirror 标志克隆你的 repo 的新副本:

git clone --mirror git://example.com/some-big-repo.git

如果使用 SSH 或

git clone --mirror https://example.com/some-big-repo.git

如果使用 HTTPS。

这是一个裸存储库,因此您将无法看到您的文件,但它将是包含所有提交的存储库的完整副本。

  1. 然后您可以使用以下命令从之前的提交中删除特定文件:

java -jar bfg.jar --delete-files [文件名] --no-blob-protection my-repo.git

或者如果安装到 PATH

bfg --delete-files [文件名] --no-blob-protection my-repo.git

或从旧提交中删除密码

bfg --replace-text passwords.txt

  1. 在推送回您的存储库之前,请进入您的 git 存储库文件夹并运行以下命令,检查存储库历史记录是否已更改:

git reflog expire --expire=now --all && git gc --prune=now --aggressive

然后

git gc

删除您不想推送回您的存储库的不需要的数据。

  1. 一旦你满意,通过运行 git push 推送回你的远程仓库 - 请注意,因为你在克隆你的仓库时使用了 --mirror 标志,当你推回你的仓库,你也会推回引用更改。

要了解有关 BFG Repo-Cleaner 的更多信息,请访问 link .

关于git - 在 Github repo 上的所有先前提交中 stash 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48843026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com